Home >Backend Development >PHP Problem >Does php support multiple processes?

Does php support multiple processes?

(*-*)浩
(*-*)浩Original
2019-09-05 09:18:002739browse

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.

Does php support multiple processes?

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:How to set php error modeNext article:How to set php error mode