SWOOLE进程间无锁计数器Atomic示例代码
代码语言:phpcli
所属分类:其他
代码描述:Atomic 是 Swoole 底层提供的原子计数操作类,可以方便整数的无锁原子增减。使用共享内存,可以在不同的进程之间操作计数基于 gcc/clang 提供的 CPU 原子指令,无需加锁在服务器程序中必须在 Server->start 前创建才能在 Worker 进程中使用默认使用 32 位无符号类型,如需要 64 有符号整型,可使用 Swoole\Atomic\Long,请勿在 onReceive 等回调函数中创建计数器,否则内存会持续增长,造成内存泄漏。
代码标签: SWOOLE 进程间 无锁 计数器 Atomic 示例 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<?php $atomic = new Swoole\Atomic(); $serv = new Swoole\Server('127.0.0.1', '9501'); $serv->set([ 'worker_num' => 1, 'log_file' => '/dev/null' ]); $serv->on("start", function ($serv) use ($atomic) { if ($atomic->add() == 2) { $serv->shu.........完整代码请登录后点击上方下载按钮下载查看
网友评论0