全局变量
优质
小牛编辑
139浏览
2023-12-01
swoole内置了几个全局变量供程序内使用。一般不要自行创建全局变量。
SwooleG
超全局本地内存变量,此变量在swoole_init
时就初始化好了。存储了一些全局的信息。但不是共享内存的。当创建子进程后再修改其中的字段,其他进程是感知不到的
- SwooleG.main_reactor,全局事件循环
- SwooleG.lock,全局锁
- SwooleG.memory_pool,全局共享内存池
- SwooleG.cpu_num,CPU核数
- SwooleG.pagesize,内存页大小
SwooleWG
进程内全局变量,此全局变量在Worker
进程内初始化。
- SwooleWG.id,worker进程的ID
- SwooleWG.pid,worker进程的PID
与
SwooleG
不同之处是,SwooleWG
内只保存与当前进程有关的信息,而SwooleG
中保存的信息可能是跨进程共有的
SwooleGS
超全局共享变量,此全局变量是基于共享内存的,修改字段的值,其他进程也会受到影响
- SwooleGS->master_pid,主进程的PID
- SwooleGS->manager_pid,管理进程的PID