Swoole
Swoole 本身也是个多进程模型。有多个 worker 进程和 master 进程。
共享内存
由于进程之间的变量时不能相互通用的。所以应该怎样实现进程之间的通讯呢?
操作系统中实现进程通讯的方法有多种,其中一种是共享内存(是操作系统内比较特殊的一种内存,他并不依赖于任何的进程也不属于任何进程)。
可以调用系统提供的系统函数来创建一片共享内存,并指定它的索引,通过索引,任何一个进程都可以在这片共享内存中申请内存空间并在其中存一定的值。
举例:
当子进程 1 通过索引在共享内存中分配了一片内存 a = 1 ,在子进程 2 中同样的可以访问这个变量 a,并得到它的值,也可以修改 a 的值,子进程 1 可以访问这个内存并得到这个修改后的值。这样就实现了两个进程之间的通讯。
注意:
1.共享内存不属于任何一个进程,可以通过方法被创建
2.在共享内存中分配的内存空间可以被任何进程访问,只要这个进程拥有这片共享内存的索引,也就是它的 id
3.即使进程关闭,共享内存仍然可以继续保留在操作系统当中(在操作系统中,通过命令 ipcs -m,可以查看系统中的共享内存)