pcntl_fork

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_fork 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。

说明

pcntl_fork ( void ) : int

pcntl_fork()函数创建一个子进程,这个子进程仅PID(进程号) 和PPID(父进程号)与其父进程不同。fork怎样在您的系统工作的详细信息请查阅您的系统 的fork(2)手册。

返回值

成功时,在父进程执行线程内返回产生的子进程的PID,在子进程执行线程内返回0。失败时,在 父进程上下文返回-1,不会创建子进程,并且会引发一个PHP错误。

范例

Example #1 pcntl_fork() 示例

<?php

$pid 
pcntl_fork();
//父进程和子进程都会执行下面代码
if ($pid == -1) {
    
//错误处理:创建子进程失败时返回-1.
     
die('could not fork');
} else if (
$pid) {
     
//父进程会得到子进程号,所以这里是父进程执行的逻辑
     
pcntl_wait($status); //等待子进程中断,防止子进程成为僵尸进程。
} else {
     
//子进程得到的$pid为0, 所以这里是子进程执行的逻辑。
}

?>

参见