先看一下官方文档的运行流程图和进程/线程结构图,对swoole有个大概的了解。
运行流程图
进程/线程结构图
结合上图,大概说一下我的理解。
1.Master进程 Master是swoole的主进程,用于处理swoole的核心事件驱动,它拥有一个MainReactor线程以及若干个Reactor线程。 2.Reactor线程 处理TCP连接,收发数据的线程。Reactor主线程监听到新的连接accept,会评估每个Reactor线程的连接数量,将此连接分配给连接数最少的reactor线程,并由这个线程负责监听此socket,在socket可读时读取数据,并进行协议解析,将请求投递到Worker进程,在数据可写时将数据发送给TCP客户端。Reactor是异步非阻塞模式。
3.Manager进程
管理进程,work和task进程都是由它管理。子进程结束运行时,manager进程负责回收此子进程,避免成为僵尸进程,并创建新的子进程;服务器关闭时,manager进程将发送信号给所有的子进程,通知子进程关闭服务;服务器reload时,mana