首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
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 无缓冲是堵塞主线程的 你们应该不堵塞。。
发布于4年前 · 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
回复
微信公众号
热门内容
作者其它话题
- 一定更要在控制器里return
- swoole4 有检测内存泄漏的工具 或者能看到实时内存使用的情况
- swoole4 用户通过路由访问控制器 创建了新线程 还是创建了协程 来访问的
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。