关于swoole进程线程关系的疑问?

swoole版本 4.2.9
PHP版本 7.1.18

运行swoole官网的实例,观察其进程间的关系,感觉有点困惑

https://wiki.swoole.com/wiki/...

首先,ps aft | grep php

clipboard.png

这个能理解,一个主进程,一个子进程。代码里面也是在主进程下面创建了一个子进程。

然后,pstree -p 23867

clipboard.png

23868,23869,23870 这三个线程又是怎么出现的?

另外,pstree -ap | grep php

clipboard.png

为什么会在一个php-fpm,3913的进程下面?

clipboard.png

这是官网的进程线程关系图,但此处肯定是和上面无关的,这里只是一个进程管理模块,而官网的这个图是在网络通信server中的一个进程线程关系。

阅读 1.8k
1 个回答

你看的应该是master进程

Master进程主要用来保证Swoole框架机制的运行。它会创建几个功能性的线程:

Reactor线程:就是真正处理TCP连接,收发数据的线程。swoole的主线程在Accept新的连接后,会将这个连接分配给一个固定的Reactor线程,并由这个线程负责监听此socket。在socket可读时读取数据,并进行协议解析,将请求投递到Worker进程。在socket可写时将数据发送给TCP客户端。
Master线程(主线程): 负责:Accept新的连接、UNIX PROXI信号处理、定时器任务。
心跳包检测线程:(略)
UDP收包线程:(略)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题