Atomic

swoole_atomic是swoole扩展提供的原子计数操作类,可以方便整数的无锁原子增减。

注意:请勿在onReceive等回调函数中创建原子数,否则底层的GlobalMemory内存会持续增长,造成内存泄漏。

swoole_atomic1.7.19以上版本可用
Swoole\Atomic\Long1.9.20以上版本可用

64位长整型

1.9.20版本增加了对64位有符号长整型原子计数的支持。使用new Swoole\Atomic\Long 来创建。

使用示例

$atomic = new swoole_atomic(123);
echo $atomic->add(12)."\n";
echo $atomic->sub(11)."\n";
echo $atomic->cmpset(122, 999)."\n";
echo $atomic->cmpset(124, 999)."\n";
echo $atomic->get()."\n";