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 < $workers; $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); } } |