pcntl_fork
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
pcntl_fork — 在目前程序目前位置產生分支(子程序)。譯註:fork是建立了一個子程序,父程序和子程序 都從fork的位置開始向下繼續執行,不同的是父程序執行過程中,得到的fork返回值為子程序 號,而子程序得到的是0。
說明
pcntl_fork(): int
pcntl_fork()函式建立一個子程序,這個子程序僅PID(程序號) 和PPID(父程序號)與其父程序不同。fork怎樣在您的系統工作的詳細資訊請查閱您的系統 的fork(2)手冊。
返回值
成功時,在父程序執行執行緒內返回產生的子程序的PID,在子程序執行執行緒內返回0。失敗時,在 父程序上下文返回-1,不會建立子程序,並且會引發一個PHP錯誤。
範例
示例 #1 pcntl_fork() 示例
<?php
$pid = pcntl_fork();
//父程序和子程序都會執行下面程式碼
if ($pid == -1) {
//錯誤處理:建立子程序失敗時返回-1.
die('could not fork');
} else if ($pid) {
//父程序會得到子程序號,所以這裡是父程序執行的邏輯
pcntl_wait($status); //等待子程序中斷,防止子程序成為殭屍程序。
} else {
//子程序得到的$pid為0, 所以這裡是子程序執行的邏輯。
}
?>