当前位置: 首页 > 文档资料 > Swoole 内核开发 >

全局变量

优质
小牛编辑
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