簡(jiǎn)介

PHP的進(jìn)程控制支持實(shí)現(xiàn)了Unix方式的進(jìn)程創(chuàng)建, 程序執(zhí)行, 信號(hào)處理以及進(jìn)程的中斷。 進(jìn)程控制不能被應(yīng)用在Web服務(wù)器環(huán)境,當(dāng)其被用于Web服務(wù)環(huán)境時(shí)可能會(huì)帶來(lái)意外的結(jié)果。

這份文檔用于闡述每個(gè)進(jìn)程控制函數(shù)的通常用法。關(guān)于Unix進(jìn)程控制的更多信息建議您查閱 系統(tǒng)文檔中關(guān)于fork(2),waitpid(2),signal(2)等的部分或更全面的參考資料比如 《Unix環(huán)境高級(jí)編程》(作者:W. Richard Stevens,Addison-Wesley出版)。

PCNTL現(xiàn)在使用了ticks作為信號(hào)處理的回調(diào)機(jī)制,ticks在速度上遠(yuǎn)遠(yuǎn)超過(guò)了之前的處理機(jī)制。 這個(gè)變化與“用戶ticks”遵循了相同的語(yǔ)義。您可以使用declare() 語(yǔ)句在程序中指定允許發(fā)生回調(diào)的位置。這使得我們對(duì)異步事件處理的開(kāi)銷最小化。在編譯PHP時(shí) 啟用pcntl將始終承擔(dān)這種開(kāi)銷,不論您的腳本中是否真正使用了pcntl。

有一個(gè)調(diào)整是PHP 4.3.0之前的所有pcntl腳本要使其工作,要么在期望允許回調(diào)的(代碼)部分使用 declare() ,要么使用declare()新的全局語(yǔ)法 使其在整個(gè)腳本范圍有效。

注意: 此擴(kuò)展在 Windows 平臺(tái)上不可用。