溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中的pcntl_fork()函數(shù)有什么用

發(fā)布時間:2021-02-26 09:50:26 來源:億速云 閱讀:185 作者:清風 欄目:編程語言

這篇“php中的pcntl_fork()函數(shù)有什么用”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“php中的pcntl_fork()函數(shù)有什么用”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。

php有什么用

php是一個嵌套的縮寫名稱,指的是英文超級文本預處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因為php是開源的,從而使得php經(jīng)久不衰。

pcntl_fork()函數(shù)是php-pcntl模塊中用于創(chuàng)建進程的函數(shù)。(不支持windows)

至于php_pcntl擴展如何安裝開啟這里就不介紹了,只分析pcntl_fork()這個函數(shù)本身。

$one = 123;
$one++;
$two = time();
$pid = [];
$pid = pcntl_fork();
$three = time();

當:pcntl_fork()函數(shù)執(zhí)行的時候,會創(chuàng)建一個子進程。子進程會復制當前進程,也就是父進程的所有:數(shù)據(jù),代碼,還有狀態(tài)。

1.當pcntl_fork()創(chuàng)建子進程成功后,在父進程內(nèi),返回子進程號,在子進程內(nèi)返回0,失敗則返回-1

2.子進程會復制父進程的代碼,數(shù)據(jù)。那么就說明:子,父進程擁有的代碼和數(shù)據(jù)會一模一樣。

3.重點:子進程會復制父進程的狀態(tài),那么就有上面的示例代碼:在第五行執(zhí)行了pcntl_fork,那么創(chuàng)建出的子進程,代碼也是從第五行開始執(zhí)行的。又子進程復制了數(shù)據(jù),代碼。所以,在子進程內(nèi)同理存在:$one,$two等變量

for ($i = 0; $i < 3; $i++) {
    $pid = pcntl_fork();
}
sleep(30);

那么:上面的for循環(huán),實際會產(chǎn)生多少個子進程?答案是7個,在linux下,用ps命令將可以看到8個進程(1個父進程,7個子進程)

原因:父進程在i = 0 時 , 創(chuàng) 建 出 一 個 子 進 程 0 , 此 時 的 子 進 程 , 還 會 繼 續(xù) 執(zhí) 行 循 環(huán) 。 創(chuàng) 建 出 屬 于 自 己 的 子 進 程 。同理:i=1時也會這樣……

以上是“php中的pcntl_fork()函數(shù)有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI