首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
关于对swoole的思考(5个问题)
问题1:既然worker线程已经处理了业务逻辑有了结果,为什么还要给task处理(多此一举),然后task还要返回给worker最后worker再给reactor再返回。worker把业务逻辑的结果直接给reactor返回客户端岂不更方便? 问题2:manager管理的worker和task是线程池方式还是非线程池方式? 是使用的时候才开辟线程资源吗? 问题3: 工作线程使用完毕有会自销毁吗?还是用完以后阻塞在系统里,等待下次管道信号来唤醒这个工作线程? 问题4:业务逻辑的代码在worker或者task中阻塞导致无法返回有什么后果?除了manager和reactor无法给这个worker分配任务还有其他影响吗? 问题5:业务逻辑的代码如果严重异常比如空对象调用,会破坏线程空间资源吗?会导致操作系统杀死这个子进程吗?会影响其他子进程或管理进程的稳定吗?
发布于7年前 · 2 次浏览 · 来自
提问
G
GoSiMn
问题1:既然worker线程已经处理了业务逻辑有了结果,为什么还要给task处理(多此一举),然后task还要返回给worker最后worker再给reactor再返回。worker把业务逻辑的结果直接给reactor返回客户端岂不更方便? 问题2:manager管理的worker和task是线程池方式还是非线程池方式? 是使用的时候才开辟线程资源吗? 问题3: 工作线程使用完毕有会自销毁吗?还是用完以后阻塞在系统里,等待下次管道信号来唤醒这个工作线程? 问题4:业务逻辑的代码在worker或者task中阻塞导致无法返回有什么后果?除了manager和reactor无法给这个worker分配任务还有其他影响吗? 问题5:业务逻辑的代码如果严重异常比如空对象调用,会破坏线程空间资源吗?会导致操作系统杀死这个子进程吗?会影响其他子进程或管理进程的稳定吗?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2018-10-11
孤
孤身、走我路
问题1 同问
赞
0
回复
2018-10-18
果
果粒丶
文档原话 > 而swoole不同,丢给task进程之后,worker进程可以继续处理新的数据请求。任务完成后会异步地通知worker进程告诉它此任务已经完成。
赞
0
回复
2018-10-19
J
Jogo
1. 因为worker进程是要处理事件的,所以某些阻塞IO和耗时任务丢给task进程执行 2. 进程池 3. 不销毁,持续复用 4. worker进程/task进程阻塞,当然就无法处理新的请求或任务了 5. 出现Fatal当前的worker进程会退出,但是Manager进程会启动新的Worker
赞
0
回复