首頁  >  文章  >  後端開發  >  php支援多進程嗎

php支援多進程嗎

(*-*)浩
(*-*)浩原創
2019-09-05 09:18:002710瀏覽

在伺服器跑腳本時,避免不了一些耗時任務,使用多進程是不可或缺的。 而在 PHP5.5 之後,PHP 開始加入了多進程元素,以滿足開發需求。

php支援多進程嗎

注意

#實現多進程需要開啟的擴充:pcntl、 posix。

Windows 環境下不支援PHP 的多進程編程,本文主要在Linux 環境下開發測試

#主要功能(推薦學習:PHP視訊教學

pcntl_fork:建立多進程,呼叫後會回傳兩個進程的pid,0 為子進程,大於0 為父進程(父行程得到子行程的id,所以大於0),-1為建立失敗

$pid = $pcntlInstall ? pcntl_fork() : 0;

if ($pid == -1) {
    //fork失败
 } elseif ($pid > 0) {
    //父进程
    ......
 } elseif ($pid == 0) {
    //子进程
    ......
 }

pcntl_signal: 註冊一個訊號處理回呼函數,可以擷取子行程結束時發出的訊號

/配合pcntl_signal使用
declare (ticks = 1);

//当子进程退出时,会触发该函数,当前子进程数-1
pcntl_signal(SIGCHLD, function ($signo) {
    switch ($signo) {
        case SIGCHLD:
            echo $curChildPro . 'SIGCHLD', PHP_EOL;
            $curChildPro--;
            break;
    }
});

pcntl_wait: 用來暫停父進程,等待子進程退出

以上是php支援多進程嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn