准备工作:
使用VMware软件安装Centos7 安装php7 和swoole扩展
<?php
//进程队列之间通信
$worker=[];//进程队列仓库
$woker_number=2;//队列进程Number
//循环创建进程
for($i=0;$i<=$woker_number;$i++){
$process=new swoole_process("doProcess",false,false);
//开启进程队列,类似全局队列
$process->useQueue();
$pid=$process->start();//启动进程
//将启动的进程放入进程仓库中
$worker[$pid]=$process;
}
//进程执行的函数
function doProcess(swoole_process $process){
$rev=$process->pop();
echo "从主进程获取到的数据:".$rev."\n";
sleep(5);//睡眠5秒
//退出进程
$process->exit(0);
}
//主进程向子进程添加数据
foreach ($worker as $pid=>$process){
$process->push("hi 子进程".$pid."\n");
}
//等待子进程结束回收资源
foreach ($worker as $pid=>$process){
$ret=swoole_process::wait();//
var_dump($ret);
$pid=$ret['pid'];
unset($worker[$pid]);
//子进程退出
echo "子进程退出".$pid."\n";
}
执行结果: