Php/docs/function.pcntl-fork

来自菜鸟教程
跳转至:导航、​搜索

pcntl_fork

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

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


说明

pcntl_fork ( ) : 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, 所以这里是子进程执行的逻辑。}?>

参见