码迷,mamicode.com
首页 > 系统相关 > 详细

10.swoole学习笔记--进程队列通信

时间:2018-02-11 16:12:32      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:回收   仓库   usequeue   pid   src   通信   ret   worker   http   

<?php
//进程仓库
$workers=[];

//最大进程数
$worker_num=2;

//批量创建进程
for($i=0;$i<$worker_num;$i++){
    //创建子进程
    $process=new swoole_process("doProcess",false,false);
    //开启队列--类似于全局函数
    $process->useQueue();
    //启动进程并获取进程id
    $pid=$process->start();
    //存入进程数组
    $workers[$pid]=$process;
}

//创建进程对应的执行函数
function doProcess(swoole_process $process){
    $recv=$process->pop();//8192
    echo "从主进程获取到数据:$recv \n";
    sleep(5);
    $process->exit(0);
}

//主进程向子进程添加数据
foreach($workers as $pid=>$process){
    $process->push("Hell 子进程 $pid \n");
}

//等待子进程结束回收资源
for($i=0;$i<$worker_num;$i++){
    $ret=swoole_process::wait();//等待执行完成
    $pid=$ret[pid];
    unset($workers[$pid]);
    echo "子进程$pid\n";
}
?>

技术分享图片

 

10.swoole学习笔记--进程队列通信

标签:回收   仓库   usequeue   pid   src   通信   ret   worker   http   

原文地址:https://www.cnblogs.com/zouke1220/p/8441465.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!