這篇文章給大家分享的是有關swoole和pcntl對比有什么區(qū)別的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
在忠縣等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設計 網(wǎng)站設計制作按需策劃設計,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,全網(wǎng)營銷推廣,成都外貿網(wǎng)站建設公司,忠縣網(wǎng)站建設費用合理。
PHP的進程控制支持實現(xiàn)了Unix方式的進程創(chuàng)建, 程序執(zhí)行, 信號處理以及進程的中斷。 進程控制不能被應用在Web服務器環(huán)境,當其被用于Web服務環(huán)境時可能會帶來意外的結果。
PCNTL現(xiàn)在使用了ticks作為信號處理的回調機制,ticks在速度上遠遠超過了之前的處理機制。 這個變化與“用戶ticks”遵循了相同的語義。
您可以使用declare() 語句在程序中指定允許發(fā)生回調的位置。這使得我們對異步事件處理的開銷最小化。在編譯PHP時 啟用pcntl將始終承擔這種開銷,不論您的腳本中是否真正使用了pcntl。
有一個調整是PHP 4.3.0之前的所有pcntl腳本要使其工作,要么在期望允許回調的(代碼)部分使用 declare() ,要么使用declare()新的全局語法 使其在整個腳本范圍有效。
Note:此擴展在 Windows 平臺上不可用。
swoole增加了多進程管理模塊來替代PHP的pcntl,它相比pcntl的不同點是:
swoole_process提供了pcntl沒有的進程間通信swoole_process支持重定向標準輸入和輸出,在子進程內echo或者讀鍵盤輸入可以被重定向為從管道中取數(shù)據(jù)子進程可以異步化
進程間通信(IPC)
子進程和父進程之間可以通過管道通信,傳遞數(shù)據(jù)。IPC在多進程編程中經(jīng)常用到,PHP的pcntl模塊沒有提供IPC的功能,所以功能有局限。而swoole_process提供了這些功能,并且封裝了接口。只需調用接口即可完成進程間通信。
$worker_num = 8; for($i = 0; $i < $worker_num; $i++) { $process = new swoole_process('callback_function', $redirect_stdout); $pid = $process->start(); $workers[$pid] = $process; } function callback_function(swoole_process $worker) { //echo "Worker: start. PID=".$worker->pid."\n"; //recv data from master $recv = $worker->read(); echo "From Master: $recv\n"; //send data to master $worker->write("hello master\n"); sleep(2); $worker->exit(0); }
read/write 2個方法就是向管道內讀寫數(shù)據(jù)。主進程內可以通過write/read 向子進程寫入,讀取數(shù)據(jù)。
感謝各位的閱讀!關于“swoole和pcntl對比有什么區(qū)別”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
分享標題:swoole和pcntl對比有什么區(qū)別
標題網(wǎng)址:http://jinyejixie.com/article28/gggcjp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、外貿建站、小程序開發(fā)、營銷型網(wǎng)站建設、網(wǎng)站導航、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)