PHP內(nèi)核探索 —— 單進(jìn)程和多進(jìn)程/線程SAPI生命周期
CLI/CGI模式的PHP屬于單進(jìn)程的SAPI模式。這類的請(qǐng)求在處理一次請(qǐng)求后就關(guān)閉。也就是只會(huì)經(jīng)過(guò)如下幾個(gè)環(huán)節(jié): 開(kāi)始 - 請(qǐng)求開(kāi)始 - 請(qǐng)求關(guān)閉 - 結(jié)束 SAPI接口實(shí)現(xiàn)就完成了其生命周期。
單進(jìn)程多請(qǐng)求則如下圖所示:
通常PHP是編譯為apache的一個(gè)模塊來(lái)處理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)過(guò)開(kāi)始和結(jié)束環(huán)節(jié), 不過(guò)每個(gè)進(jìn)程的開(kāi)始階段只在進(jìn)程fork出來(lái)以來(lái)后進(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)求開(kāi)始-請(qǐng)求關(guān)閉的環(huán)節(jié)。
多線程模式和多進(jìn)程中的某個(gè)進(jìn)程類似,不同的是在整個(gè)進(jìn)程的生命周期內(nèi)會(huì)并行的重復(fù)著 請(qǐng)求開(kāi)始-請(qǐng)求關(guān)閉的環(huán)節(jié)。
相關(guān)文章:
1. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)2. xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理3. 解析原生JS getComputedStyle4. 輕松學(xué)習(xí)XML教程5. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器6. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))7. ASP常用日期格式化函數(shù) FormatDate()8. css代碼優(yōu)化的12個(gè)技巧9. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法10. jsp EL表達(dá)式詳解
