Home  >  Article  >  Backend Development  >  Detailed explanation of pcntl_fork in php

Detailed explanation of pcntl_fork in php

醉折花枝作酒筹
醉折花枝作酒筹forward
2021-05-12 17:37:352007browse

This article will introduce to you "pcntl_fork" in php. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

Detailed explanation of pcntl_fork in php

The pcntl_fork() function is the function used to create a process in the php-pcntl module. (Windows is not supported)

As for how to install and enable the php_pcntl extension, I will not introduce it here. I will only analyze the pcntl_fork() function itself.

$one = 123;
$one++;
$two = time();
$pid = [];
$pid = pcntl_fork();
$three = time();

When: pcntl_fork() function is executed, a child process will be created. The child process will copy everything about the current process, that is, the parent process: data, code, and state.

When pcntl_fork() successfully creates a child process, the child process number is returned in the parent process, 0 is returned in the child process, and -1 is returned in case of failure

The child process will copy the parent process code, data. Then it means: the code and data owned by the child and parent processes will be exactly the same.

Key point: The child process will copy the status of the parent process, then there is the above sample code: In the fifth line, pcntl_fork is executed, then create The subprocess of the code is also executed from the fifth line. The child process copied the data and code. Therefore, in the sub-process, variables such as $one, $two and so on exist in the same way.

for ($i = 0; $i < 3; $i++) {
    $pid = pcntl_fork();
}
sleep(30);

So: How many sub-processes will actually be generated by the above for loop? The answer is 7. Under Linux, you can use the ps command to see 8 processes (1 parent process, 7 child processes)

Reason: The parent process creates a child process when i = 0 0, the child process at this time will continue to execute the loop. Create your own child process. In the same way: when i=0, a child process 0 is created. At this time, the child process will continue to execute the loop. Create your own child process. In the same way: when i=0, a child process 0 is created. At this time, the child process will continue to execute the loop. Create your own child process. In the same way: this will also happen when i=1...

Recommended learning: php video tutorial

The above is the detailed content of Detailed explanation of pcntl_fork in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete