When running scripts on the server, some time-consuming tasks cannot be avoided, and the use of multiple processes is essential. After PHP5.5, PHP began to add multi-process elements to meet development needs.
Note
Extensions that need to be enabled to implement multiple processes: pcntl, posix.
Multi-process programming of PHP is not supported in the Windows environment. This article is mainly developed and tested in the Linux environment.
Main functions (recommended Study: PHP video tutorial)
pcntl_fork:Create multiple processes. After calling, the pid of the two processes will be returned. 0 is the child process, and greater than 0 is the parent process. (The parent process gets the id of the child process, so it is greater than 0), -1 means the creation failed
$pid = $pcntlInstall ? pcntl_fork() : 0; if ($pid == -1) { //fork失败 } elseif ($pid > 0) { //父进程 ...... } elseif ($pid == 0) { //子进程 ...... }
pcntl_signal: Register a signal processing callback function to capture the signal sent when the child process ends
/配合pcntl_signal使用 declare (ticks = 1); //当子进程退出时,会触发该函数,当前子进程数-1 pcntl_signal(SIGCHLD, function ($signo) { switch ($signo) { case SIGCHLD: echo $curChildPro . 'SIGCHLD', PHP_EOL; $curChildPro--; break; } });
pcntl_wait: Used to pause the parent process and wait for the child process to exit
The above is the detailed content of Does php support multiple processes?. For more information, please follow other related articles on the PHP Chinese website!