首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
通道问题
Co\run(function(){ //使用Channel进行协程间通讯 $chan = new Swoole\Coroutine\Channel(1); Swoole\Coroutine::create(function () use ($chan) { for($i = 0; $i < 100000; $i++) { co::sleep(1.0); $chan->push(['rand' => rand(1000, 9999), 'index' => $i]); echo "$i\n"; } }); Swoole\Coroutine::create(function () use ($chan) { while(1) { $data = $chan->pop(); var_dump($data); } }); }); 这个通道跟golang不一样的 golang 无缓冲是堵塞主线程的 你们应该不堵塞。。
发布于6年前 · 1 次浏览 · 来自
提问
n
newm
Co\run(function(){ //使用Channel进行协程间通讯 $chan = new Swoole\Coroutine\Channel(1); Swoole\Coroutine::create(function () use ($chan) { for($i = 0; $i < 100000; $i++) { co::sleep(1.0); $chan->push(['rand' => rand(1000, 9999), 'index' => $i]); echo "$i\n"; } }); Swoole\Coroutine::create(function () use ($chan) { while(1) { $data = $chan->pop(); var_dump($data); } }); }); 这个通道跟golang不一样的 golang 无缓冲是堵塞主线程的 你们应该不堵塞。。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-06-11
序冢
早期的 swoole 的 channel 是基于互斥锁和内存队列做的
赞
0
回复