PHP实现多进程并行操作,可做守护进程(转,备用)详解编程语言

 <?php 
 /** 
  * 入口函数 
  * 将此文件保存为 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); 
         }    
     }    
 }

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/17164.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论