C++11 提供了一个原子类型std::atomic<T> 。使用原子变量就不用锁了,因为本来就是互斥访问. 使用时需要包含头文件#include<atomic>
- 一个典型的应用就是计数器
#include<iostream>
#include<atomic>
struct AtomicCounter {
std::atomic<int> value;
void increment() {
++value;
}
void decrement() {
--value;
}
int get() {
return value.load();
}
};