swoole之创建进程,进程事件

本文详细介绍了使用Swoole进行进程管理的方法,包括进程的创建、启动及等待结束的过程。同时,深入探讨了进程间通讯机制,展示了如何通过管道进行数据交换,实现进程间的有效协作。

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

<?php
/**
 * Created by PhpStorm.
 * User: Ty_Ro
 * Date: 2019/1/31
 * Time: 17:32
 */

//创建进程
//进程对应的执行函数
function doProcess (swoole_process $worker){
    echo "PID",$worker->pid,"\n";
    sleep(10);
}

//创建进程
$process = new swoole_process("doProcess");

$pid = $process->start();

$process = new swoole_process("doProcess");

$pid = $process->start();

$process = new swoole_process("doProcess");

$pid = $process->start();


//等待结束
swoole_process::wait();

 

 

进程事件

 

<?php
/**
 * Created by PhpStorm.
 * User: Ty_Ro
 * Date: 2019/2/4
 * Time: 0:21
 */
$workers = [];  //进程 数组
$worker_num = 3;  //创建进程的数据量
//创建 启动进程

for ($i=0;$i<$worker_num;$i++){
    $process = new swoole_process('doProcess'); //创建单独新进程
    $pid = $process->start(); // 启动进程,并获取进程ID
    $workers[$pid] = $process; //存入进程数组
}

// 创建进程事件,向每一个子进程添加需要执行的动作
function doProcess(swoole_process $process){
    $process->write("PID: $process->pid"); //子进程写入信息 ? pipe
    echo "写入信息: $process->pid $process->callback";
}
// 添加进程事件,向每一个子进程添加需要执行的动作
foreach ($workers as $process){
    //添加
    swoole_event_add($process->pipe,function ($pipe) use ($process){
        $data = $process->read(); //能否读取数据
        echo "接受到 : $data \n";
    });
}

 

进程间通讯

 

 

信号触发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值