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. 詳解idea中web.xml默認(rèn)版本問題解決2. python selenium 獲取接口數(shù)據(jù)的實(shí)現(xiàn)3. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算4. ASP實(shí)現(xiàn)加法驗(yàn)證碼5. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫的方法6. JSP頁面實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能7. asp知識(shí)整理筆記4(問答模式)8. jsp EL表達(dá)式詳解9. Python matplotlib 繪制雙Y軸曲線圖的示例代碼10. java 優(yōu)雅關(guān)閉線程池的方案
