程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php pcntl_fork和pcntl_fork 的用法

php pcntl_fork和pcntl_fork 的用法

編輯:關於PHP編程

pcntl_fork()函數就是為當前的進程創建一個子進程。並且先運行父進程,返回的是子進程的PID,肯定大於零。在父進程的代碼中可以用pcntl_fork(&$status)暫停父進程知道他的子進程有返回值。注意:父進程的阻塞同時會阻塞子進程。但是父進程的結束不影響子進程的運行。
父進程運行完了會接著運行子進程,這時子進程會從執行pcntl_fork()的那條語句開始執行(包括此函數),但是此時它返回的是零(代表這是一個子進程)。在子進程的代碼塊中最好有exit語句,即執行完子進程後立即就結束。否則它會又重頭開始執行這個腳本的某些部分(一直沒有總結出規矩)。
總之,注意兩點:
1。子進程最好有一個exit;語句,防止不必要的出錯;
2.
復制代碼 代碼如下:
$pid = pcntl_fork();
//這裡最好不要有其他的語句
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
// we are the parent
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the child
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved