首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swool_process中关于swoole_event_add的使用
{{{ <?php $redirect_stdout = false; $workers = []; $worker_num = 1; for($i = 0; $i < $worker_num; $i++){ $process = new swoole_process('child_async', $redirect_stdout); $pid = $process->start(); $workers[$pid] = $process; } //主进程 foreach($workers as $pid => $process){ echo PHP_EOL . ' maste start '; $process->write("hello worker[$pid]"); $process->read(); } function child_async(swoole_process $worker){// 子进程 swoole_event_add( $worker->pipe, //管道 pipe function($pipe) use ($worker) { // 当从管道读取时调用 echo PHP_EOL.' Master you are read from pid ='.$worker->pid.' and pipe = '.$pipe .PHP_EOL ; sleep(2); } , function($pipe) use ($worker) { // 当向管道写入时调用 echo PHP_EOL. ' Master write to pipe ' . $pipe .'and data is '.$worker->read() .PHP_EOL; sleep(2); }); sleep(2); $worker->exit(0); } }}} 我认为 子进程开始监听后,当主进程 向管道里读/写内容时,界面应该出现相应的输出,但是实际上却没有,请问我哪里不对吗?
发布于9年前 · 1 次浏览 · 来自
提问
f
flower
{{{ <?php $redirect_stdout = false; $workers = []; $worker_num = 1; for($i = 0; $i < $worker_num; $i++){ $process = new swoole_process('child_async', $redirect_stdout); $pid = $process->start(); $workers[$pid] = $process; } //主进程 foreach($workers as $pid => $process){ echo PHP_EOL . ' maste start '; $process->write("hello worker[$pid]"); $process->read(); } function child_async(swoole_process $worker){// 子进程 swoole_event_add( $worker->pipe, //管道 pipe function($pipe) use ($worker) { // 当从管道读取时调用 echo PHP_EOL.' Master you are read from pid ='.$worker->pid.' and pipe = '.$pipe .PHP_EOL ; sleep(2); } , function($pipe) use ($worker) { // 当向管道写入时调用 echo PHP_EOL. ' Master write to pipe ' . $pipe .'and data is '.$worker->read() .PHP_EOL; sleep(2); }); sleep(2); $worker->exit(0); } }}} 我认为 子进程开始监听后,当主进程 向管道里读/写内容时,界面应该出现相应的输出,但是实际上却没有,请问我哪里不对吗?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2016-10-28
h
heui
1. 你不应该加sleep和exit 2. 不要设置可写函数 3. 可读回调函数里没有执行 $process->read,会导致事件持续触发,死循环
赞
0
回复
2016-11-14
elileo
谢谢韩老师
赞
0
回复