<?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";
});
}
进程间通讯



信号触发


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

被折叠的 条评论
为什么被折叠?



