Home >Backend Development >PHP Tutorial >PHP pcntl multi-process usage example_PHP tutorial
This article mainly introduces the usage of pcntl multi-process in PHP. The example analyzes the usage skills of pcntl operating multi-process, which is of great practical value. , friends in need can refer to it
The example in this article 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 process a transaction using multiple processes using the PCNTL series of functions. For example, I need to obtain 800,000 pieces of data from the database and then do 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 1-80w of data into 20 parts. The main process waits for all child processes to finish before exiting:
?
3 4 5 6 715 16
17
18
19
20
21
22
23
24
25
|
$max = 800000; $workers = 20; $pids = array(); for($i = 0; $i $pids[$i] = pcntl_fork(); switch ($pids[$i]) { case -1: echo "fork error : {$i} rn"; 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); } } |