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

发表日期:2021-07-01 08:56:15 | 来源: | | 浏览(895) 分类:PCNTL 函数

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


参见



集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。