php Usage of pcntl: First create a PHP sample file; then use the PCNTL series of functions to process a transaction; finally, use a "$pids" array to let the main process wait for all processes to complete before ending.
The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer
PHP’s pcntl multi-process usage example
This article mainly introduces the usage of pcntl multi-process in PHP. It analyzes the usage skills of pcntl multi-process operation with examples. It is of great practical value. Friends in need can refer to this article.
The example describes the usage of PHP's pcntl multi-process. Share it with everyone for your reference. The specific analysis is as follows:
PHP can also handle a transaction with multiple processes using the PCNTL series of functions. For example, I need to obtain 800,000 pieces of data from the database and then perform a series of subsequent processing. At this time, should I use a single process? You can wait until today next year. So you should use the pcntl function.
Suppose I want to start 20 processes and divide the 1-80w data into 20 parts. The main process waits for all child processes to finish before exiting:
$max = 800000; $workers = 20; $pids = array(); for($i = 0; $i < $workers; $i++){ $pids[$i] = pcntl_fork(); switch ($pids[$i]) { case -1: echo "fork error : {$i} \r\n"; exit; case 0: $param = array( 'lastid' => $max / $workers * $i, 'maxid' => $max / $workers * ($i+1), ); $this->executeWorker($input, $output, $param); exit; default: break; } } foreach ($pids as $i => $pid) { if($pid) { pcntl_waitpid($pid, $status); } }
Here when pcntl_fork comes out In the future, a pid value will be returned. This pid is 0 in the child process, and is the pid of the child process (>0) in the parent process. If the pid is -1, it means that the fork went wrong.
Using a $pids array allows the main process to wait for all processes to complete before ending it
[Recommended learning: PHP video tutorial]
The above is the detailed content of php pcntl usage. For more information, please follow other related articles on the PHP Chinese website!