PHP实现多进程并行操作(可做守护进程)
Freigeben: 2016-07-25 09:01:30
Original
919 Leute haben es durchsucht
PHP简单实现多进程并行处理,子进程负责处理事物,父进程可控制子进程数量,用pcntl扩展实现(备注:在windows下此效果无法实现)
- /**
- * 入口函数
- * 将此文件保存为 ProcessOpera.php
- * 在terminal中运行 /usr/local/php/bin/php ProcessOpera.php &
- * 查看进程 ps aux|grep php
- */
-
-
- ProcessOpera("runCode", array(), 8);
-
- /**
- * run Code
- */
- function runCode($opt = array()) {
- //需要在守护进程中运行的代码
- }
-
- /**
- * $func为子进程执行具体事物的函数名称
- * $opt为$func的参数 数组形式
- * $pNum 为fork的子进程数量
- */
- function ProcessOpera($func, $opts = array(), $pNum = 1) {
- while(true) {
- $pid = pcntl_fork();
- if($pid == -1) {
- exit("pid fork error");
- }
- if($pid) {
- static $execute = 0;
- $execute++;
- if($execute >= $pNum) {
- pcntl_wait($status);
- $execute--;
- }
- } else {
- while(true) {
- //somecode
- $func($opts);
- sleep(1);
- }
- exit(0);
- }
- }
- }
复制代码
|
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31