swooleprocessexample

$workers= [];
$worker_num=2;

for($i=0;$i<$worker_num;$i++)
{
   $process=newswoole_process('callback_function',false,false);
   $process->useQueue();
   $pid=$process->start();
   $workers[$pid] =$process;
   //echo "Master: new worker, PID=".$pid."\n";
}

functioncallback_function(swoole_process$worker)
{//子进程要处理的逻辑
   //echo "Worker: start. PID=".$worker->pid."\n";
   //recv data from master
   $recv=$worker->pop();//子进程结束从主进程传过来的数据(2)
   echo"From Master:$recv\";
   $worker->push("   hehe  \n");//这里子进程向主进程发送  hehe(3)
//    sleep(2);//注意这里有个sleep
   $worker->exit(0);

}

//向子进程通信
foreach($workersas$pid=>$process)
{
   $process->push("hello worker[$pid]\");//主进程向子进程发生数据(1)
   sleep(3);
   $result=$process->pop();//主进程接收从子传过来的数据(4)
   echo"From worker:$result\";//这里主进程,接受到的子进程的数据
}

for($i=0;$i<$worker_num;$i++)
{
   $ret= swoole_process::wait();//回收结束运行的子进程(5)
   $pid=$ret['pid'];
   unset($workers[$pid]);
   echo"Worker Exit, PID=".$pid.PHP_EOL;
}

专注于为中小企业提供做网站、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业临邑免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

运行结果:

swoole process example

例子1:

swoole process example

例子2:

swoole process example


名称栏目:swooleprocessexample
URL网址:http://pwwzsj.com/article/pspocc.html