1.swoole 的进程模型
swoole是一个多进程模型的框架,当启动一个进程swoole应用时,一共会创建2+n+m个线程,n为worker进程数,m为TaskWorker进程数,1个master进程和一个manager进程,关系如下图所示
Master进程为主进程,该进程会创建Manager进程、Reactor线程等工作进/线程
其中三种进程之间的关系是:
Reactor线程:
- 负责维护客户端
TCP
连接、处理网络IO
、处理协议、收发数据 - 完全是异步非阻塞的模式
- 全部为
C
代码,除Start
/Shudown
事件回调外,不执行任何PHP代码 - 将
TCP
客户端发来的数据缓冲、拼接、拆分成完整的一个请求数据包 Reactor
以多线程的方式运行
Worker进程
- 接受由
Reactor
线程投递的请求数据包,并执行PHP
回调函数处理数据 - 生成响应数据并发给
Reactor
线程,由Reactor
线程发送给TCP
客户端 - 可以是异步非阻塞模式,也可以是同步阻塞模式
Worker
以多进程的方式运行
TaskWorker进程
- 接受由
Worker
进程通过swoole_server->task/taskwait
方法投递的任务 - 处理任务,并将结果数据返回(使用
swoole_server->finish
)给Worker
进程 - 完全是同步阻塞模式
TaskWorker
以多进程的方式运行
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。