PHP內(nèi)核探索 —— 單進(jìn)程和多進(jìn)程/線程SAPI生命周期
CLI/CGI模式的PHP屬于單進(jìn)程的SAPI模式。這類的請(qǐng)求在處理一次請(qǐng)求后就關(guān)閉。也就是只會(huì)經(jīng)過如下幾個(gè)環(huán)節(jié): 開始 - 請(qǐng)求開始 - 請(qǐng)求關(guān)閉 - 結(jié)束 SAPI接口實(shí)現(xiàn)就完成了其生命周期。

單進(jìn)程多請(qǐng)求則如下圖所示:

通常PHP是編譯為apache的一個(gè)模塊來處理PHP請(qǐng)求。Apache一般會(huì)采用多進(jìn)程模式, Apache啟動(dòng)后會(huì)fork出多個(gè)子進(jìn)程,每個(gè)進(jìn)程的內(nèi)存空間獨(dú)立,每個(gè)子進(jìn)程都會(huì)經(jīng)過開始和結(jié)束環(huán)節(jié), 不過每個(gè)進(jìn)程的開始階段只在進(jìn)程fork出來以來后進(jìn)行,在整個(gè)進(jìn)程的生命周期內(nèi)可能會(huì)處理多個(gè)請(qǐng)求。 只有在Apache關(guān)閉或者進(jìn)程被結(jié)束之后才會(huì)進(jìn)行關(guān)閉階段,在這兩個(gè)階段之間會(huì)隨著每個(gè)請(qǐng)求重復(fù)請(qǐng)求開始-請(qǐng)求關(guān)閉的環(huán)節(jié)。

多線程模式和多進(jìn)程中的某個(gè)進(jìn)程類似,不同的是在整個(gè)進(jìn)程的生命周期內(nèi)會(huì)并行的重復(fù)著 請(qǐng)求開始-請(qǐng)求關(guān)閉的環(huán)節(jié)。

相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. Android如何加載Base64編碼格式圖片3. 解決Android studio xml界面無法預(yù)覽問題4. 圖文詳解vue中proto文件的函數(shù)調(diào)用5. 什么是python的自省6. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)7. Vuex localStorage的具體使用8. php模擬實(shí)現(xiàn)斗地主發(fā)牌9. vue 使用localstorage實(shí)現(xiàn)面包屑的操作10. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備