zoukankan      html  css  js  c++  java
  • 10.swoole学习笔记--进程队列通信

    <?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 
    ";
        sleep(5);
        $process->exit(0);
    }
    
    //主进程向子进程添加数据
    foreach($workers as $pid=>$process){
        $process->push("Hell 子进程 $pid 
    ");
    }
    
    //等待子进程结束回收资源
    for($i=0;$i<$worker_num;$i++){
        $ret=swoole_process::wait();//等待执行完成
        $pid=$ret['pid'];
        unset($workers[$pid]);
        echo "子进程$pid
    ";
    }
    ?>

  • 相关阅读:
    vue系列——数据请求
    优化记录
    优化记录
    正则
    跨域问题
    原型链之prototype/__proto__/constructor
    vue系列——组件数据通讯(二)
    vue系列——组件数据通讯(一)
    ES6(一)
    ES5总结
  • 原文地址:https://www.cnblogs.com/zouke1220/p/8441465.html
Copyright © 2011-2022 走看看