swooleswoole进程结构

Posted 8013-cmf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swooleswoole进程结构相关的知识,希望对你有一定的参考价值。

一:进程基本概念

  1. 系统中正在运行的一个程序,程序一旦运行就是进程
  2. 一个进程可以拥有多个线程
  3. 核心内容分为两部分:内存(进程创建时从系统分配的,它所创建的变量都会存储在这一块内存中)、上下文环境

二:swoole进程结构

  • master进程(主进程)
  • manager进程(管理进程)
  • worker进程(工作进程)
  • task进程(异步任务工作进程)

技术图片

client与server的交互:

  1. client请求到达main reactor,与master进程中的某个reactor线程连接
  2. main reactor将请求注册给对应的reactor
  3. 客户端有变化时reactor将数据交给worker处理
  4. worker处理完毕,通过进程间通信,发给对应的reactor
  5. reactor将响应结果发给相应的连接请求处理完成

技术图片

关系:一个更通俗的比喻,假设Server就是一个工厂,那Reactor就是销售,接受客户订单。而Worker就是工人,当销售接到订单后,Worker去工作生产出客户要的东西。而TaskWorker可以理解为行政人员,可以帮助Worker干些杂事,让Worker专心工作。 

三:进程及其相对应事件绑定

参考地址:https://wiki.swoole.com/wiki/page/p-event/onStart.html

  1. 服务器关闭程序终止时的最后一次事件是onShutdown
  2. 服务器启动成功后,onStart、onManager、onWorkerStart不是顺序执行的
  3. 所有事件回掉均在$server->start后发生,start之后写的代码时无效代码

以上是关于swooleswoole进程结构的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

java 简单的代码片段,展示如何将javaagent附加到运行JVM进程

代码片段:Shell脚本实现重复执行和多进程

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构