这不是加锁解锁,而只是递增
加锁需要用compare_exchange_weak/strong,解锁需要用store/exchange
其他平台如何实现不清楚,x86/64平台的实现是通过锁内存总线实现的,性能显然会变低
【 在 stub 的大作中提到: 】
: 测试了下c++下atomic<int>递增的性能
: 从下面看到atomic 变量在cpu之间颠簸的情况下, 是普通递增指令的200倍, 加锁, 解锁, 假设线程8个, 那么大概率atomic变量不在正在运行的cpu上, 那么就会耗费400时钟周期.
: 8个线程:
: ...................
--
FROM 221.218.209.*