php pcntl_fork和pcntl_fork 的用法
更新時間:2009年04月13日 10:23:17 作者:
這是兩個php的多線程的方法,在Windows下不可用,在Linux下需要編譯。
pcntl_fork()函數(shù)就是為當前的進程創(chuàng)建一個子進程。并且先運行父進程,返回的是子進程的PID,肯定大于零。在父進程的代碼中可以用pcntl_fork(&$status)暫停父進程知道他的子進程有返回值。注意:父進程的阻塞同時會阻塞子進程。但是父進程的結束不影響子進程的運行。
父進程運行完了會接著運行子進程,這時子進程會從執(zhí)行pcntl_fork()的那條語句開始執(zhí)行(包括此函數(shù)),但是此時它返回的是零(代表這是一個子進程)。在子進程的代碼塊中最好有exit語句,即執(zhí)行完子進程后立即就結束。否則它會又重頭開始執(zhí)行這個腳本的某些部分(一直沒有總結出規(guī)矩)。
總之,注意兩點:
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
}
父進程運行完了會接著運行子進程,這時子進程會從執(zhí)行pcntl_fork()的那條語句開始執(zhí)行(包括此函數(shù)),但是此時它返回的是零(代表這是一個子進程)。在子進程的代碼塊中最好有exit語句,即執(zhí)行完子進程后立即就結束。否則它會又重頭開始執(zhí)行這個腳本的某些部分(一直沒有總結出規(guī)矩)。
總之,注意兩點:
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
}
相關文章
JS與PHP向函數(shù)傳遞可變參數(shù)的區(qū)別實例代碼
JS與PHP向函數(shù)傳遞可變參數(shù)的區(qū)別實例代碼,需要的朋友可以參考下。2011-05-05使用PHP數(shù)組實現(xiàn)無限分類,不使用數(shù)據(jù)庫,不使用遞歸.
使用PHP數(shù)組實現(xiàn)無限分類,不使用數(shù)據(jù)庫,不使用遞歸....2006-12-12利用phpexcel對數(shù)據(jù)庫數(shù)據(jù)的導入excel(excel篩選)、導出excel
本篇文章主要介紹了利用phpexcel對數(shù)據(jù)庫數(shù)據(jù)的導入excel(excel篩選)、導出excel的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧2017-04-04PHP基于自定義函數(shù)實現(xiàn)的漢字轉拼音功能實例
這篇文章主要介紹了PHP基于自定義函數(shù)實現(xiàn)的漢字轉拼音功能,涉及php表單及字符串編碼轉換、遍歷等相關操作技巧,需要的朋友可以參考下2017-09-09Windows下PHP開發(fā)環(huán)境搭建教程(Apache+PHP+MySQL)
這篇文章主要為大家詳細介紹了Windows下PHP開發(fā)環(huán)境搭建教程:Apache+PHP+MySQL,具有一定的實用性和參考價值,感興趣的小伙伴們可以參考一下2016-06-06PHP中一些可以替代正則表達式函數(shù)的字符串操作函數(shù)
這篇文章主要介紹了PHP中一些可以替代正則表達式函數(shù)的字符串操作函數(shù),本文總結的是一些比較特別的字符串操作函數(shù),需要的朋友可以參考下2014-11-11