Process简单介绍

  • swoole_process提供了基于unixsock的进程间通信,使用很简单只需调用write/read或者push/pop即可
  • swoole_process支持重定向标准输入和输出,在子进程内echo不会打印屏幕,而是写入管道,读键盘输入可以重定向为管道读取数据
  • 配合swoole_event模块,创建的PHP子进程可以异步的事件驱动模式
  • swoole_process提供了exec接口,创建的进程可以执行其他程序,与原PHP父进程之间可以方便的通信

171519_pTdF_3529405.png 

 

<?php
$redirect_stdout = false;// 重定向输出
$worker_num = 2;//进程数量
$workers = [];//存放进程用的
for($i = 0; $i < $worker_num; $i++){
    $process = new swoole_process('workerFunc',$redirect_stdout );
    $pid = $process->start();
    $workers[$pid] = $process;//将进程的句柄存起来 pid 为下标
}
// 主进程。
foreach($workers as $pid => $process){// $process 是子进程的句柄
    $process->write("写入信息[$pid]\n");//向管道写入     $process->write($data);
    echo "收到的信息: ".$process->read();//子进程句柄从自己的管道里面读取信息    $process->read();
    echo PHP_EOL.PHP_EOL;
}

function workerFunc(swoole_process $worker){//子进程
    $recv = $worker->read();
    echo PHP_EOL. "从主进程发送的数据: $recv\n";
    $worker->write("你好 , 我的 pipe  是 ". $worker->pipe .";    pid  是 ".$worker->pid."\n");
    $worker->exit(0);
}   

 

转载于:https://my.oschina.net/u/3529405/blog/1068966

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值