参考:https://www.cnblogs.com/wangzhaobo/articles/9667765.html
进程和线程的关系
进程: 就是执行一个应用程序会创建一个进程,它同时也会占用一部分内存的这段计算机操作的状态时间,进程可以创建子进程。
线程: 就是一个进程执行过程中,分为多个执行任务,可以理解为多端执行代码,然后这个多段执行状态理解为线程,线程是操作系统进行运算调度的最小单位。
进程和线程的关系: 一个程序有多个进程,一个进程有多个线程。
再来张出现了很多次的图
由图可知,swoole分为两大进程manager和master,master是用来接收维护socket连接,协调相关有关线程等做杂活的,manager是用来fork 管理worker进程和task进程的。
深入理解master和manager
他们之间的关系可以理解为 Reactor 就是 nginx,Worker 就是 PHP-FPM。Reactor线程异步并行地处理网络请求,然后再转发给 Worker 进程中去处理。Reactor 和 Worker 间通过 unixSocket进行通信。
一个更通俗的比喻,假设 Server 就是一个工厂,那 Reactor 就是销售,接受客户订单。 而 Worker 就是工人,当销售接到订单后,Worker 去工作生产出客户要的东西。而 TaskWorker 可以理解为行政人员,可以帮助 Worker干些杂事,让 Worker 专心工作。
摘自swoole文档