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