Home >Backend Development >PHP Problem >Is php multi-process?

Is php multi-process?

(*-*)浩
(*-*)浩Original
2019-09-29 10:20:122535browse

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.

Is php multi-process?

Note

Extensions that need to be enabled to implement multiple processes: pcntl, posix. (Recommended learning: PHP video tutorial)

Multi-process programming of PHP is not supported in the Windows environment. This article is mainly developed and tested in the Linux environment

A simple structure diagram

Is php multi-process?

##Main functions##pcntl_fork: Create multiple processes, two items will be returned after calling The pid of the process, 0 is the child process, 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, you can 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 Is php multi-process?. 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