首页 >函数列表 >pcntl_fork

pcntl_fork

pcntl_fork

(PHP 4 >= 4.1.0, PHP 5)

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

说明

int pcntl_fork ( void )

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

?>

参见


  • pcntl_alarm
  • pcntl_exec
  • pcntl_fork
  • pcntl_getpriority
  • pcntl_setpriority
  • pcntl_signal
  • pcntl_signal_dispatch
  • pcntl_sigprocmask
  • pcntl_sigtimedwait
  • pcntl_sigwaitinfo
  • pcntl_wait
  • pcntl_waitpid
  • pcntl_wexitstatus
  • pcntl_wifexited
  • pcntl_wifsignaled
  • pcntl_wifstopped
  • pcntl_wstopsig
  • pcntl_wtermsig
  • PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道