php-swoole进程队列通信:进程之间的通信

本文详细介绍使用Swoole在PHP中实现多进程并进行进程间通信的具体实践。通过创建子进程并使用队列进行数据交换,展示了如何在主进程与子进程间传递消息,并在子进程处理完毕后回收资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
$workers = []; //进程仓库
$workers_num = 2;//进程最大进程数

for ($i = 0; $i<$workers_num;$i++){
    $process = new swoole_process('doProcess',false,false);//创建子进程完成
    $process->useQueue();//开启队列,类似与全局函数
    $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("你好 子进程 $pid \n");
}

//等待子进程结束 回收资源
for($i = 0;$i<$workers_num;$i++){
    $ret = swoole_process::wait();//等待执行完成
    $pid = $ret['pid'];
    unset($workers['$pid']);
    echo "子进程退出:$pid \n";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值