各位观众老爷们,晚上好!今天咱们聊点硬核的——PHP多进程之间的数据共享与同步。这玩意儿听起来高大上,其实也就那么回事儿,就好像你跟隔壁老王共享WiFi密码一样,只不过对象从一个人变成了一堆进程,共享的东西从密码变成了一堆数据,仅此而已。 咱们今天要讲的主要是两大家族:Shared Memory (也就是 shm_ 函数) 和 System V IPC (包括 sem_ 和 msg_ 函数)。这两大家族都是操作系统提供的利器,PHP只是给它们套了个壳,方便咱们用。 一、Shared Memory (共享内存) – 一块大家都能摸的黑板 想象一下,你和一群朋友在玩拼图,拼图的碎片散落在桌子上,每个人都可以拿到碎片,然后拼到一块大黑板上。这个黑板就是共享内存。 优点: 速度快!因为所有进程直接访问同一块物理内存,不需要数据拷贝。 缺点: 需要自己负责同步,不然拼图就乱了,大家吵起来了。 1.1 shm_get() – 申请黑板 这个函数的作用是获取一个共享内存块的ID。如果这个ID对应的内存块不存在,它就会创建一个新的。 <?php $key = ftok(_ …
继续阅读“PHP `Shared Memory` (`shm_`) / `System V IPC` (`sem_`, `msg_`):多进程数据共享与同步”