swoole版本 4.2.9
PHP版本 7.1.18
运行swoole官网的实例,观察其进程间的关系,感觉有点困惑
https://wiki.swoole.com/wiki/...
首先,ps aft | grep php
这个能理解,一个主进程,一个子进程。代码里面也是在主进程下面创建了一个子进程。
然后,pstree -p 23867
23868,23869,23870 这三个线程又是怎么出现的?
另外,pstree -ap | grep php
为什么会在一个php-fpm,3913
的进程下面?
这是官网的进程线程关系图,但此处肯定是和上面无关的,这里只是一个进程管理模块,而官网的这个图是在网络通信server中的一个进程线程关系。
你看的应该是master进程
Master进程主要用来保证Swoole框架机制的运行。它会创建几个功能性的线程:
Reactor线程:就是真正处理TCP连接,收发数据的线程。swoole的主线程在Accept新的连接后,会将这个连接分配给一个固定的Reactor线程,并由这个线程负责监听此socket。在socket可读时读取数据,并进行协议解析,将请求投递到Worker进程。在socket可写时将数据发送给TCP客户端。
Master线程(主线程): 负责:Accept新的连接、UNIX PROXI信号处理、定时器任务。
心跳包检测线程:(略)
UDP收包线程:(略)