猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
swoole协程是如何判断阻塞的?如何判断非阻塞的?
如题。
为什么在用户层调用PHP的sleep函数不会被swoole理解为阻塞?而是要调用swoole自己的co::sleep()?
浮云间
浏览 479
回答 1
1回答
富国沪深
因为sleep是PHP实现的函数,swoole无法检测到用户调用了这个函数,因此无法让当前执行的协程让出调度权。这个跟golang不一样。golang在编译器上实现了函数调用时是否阻塞的来实现让出调度权。swoole本质上还是PHP的扩展,实际代码的解析和编译还是PHP内核来实现。类似的还有文件读写,系统调用等,都需要自己去实现让出调度权的逻辑判断函数,否则也是阻塞worker进程的。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关问题
centos7里没有locate命令,请问在哪里有centos6.5的镜像文件?
2 回答
相关分类
Linux
linux
2 回答
centos7里没有locate命令,请问在哪里有centos6.5的镜像文件?
2 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续