atomic_int和int有什么区别?



在线程之间的临界区只写和读int不是线程安全的吗?那么atomic_int和int之间有什么区别呢?int不是原子的吗?

标准保证std::atomic_int完全没有数据争用。你不需要用临界区来保护它。

如果您不会与int发生数据竞争(例如在临界区,使用所有访问变量的锁),那么您也不会冗余地与std::atomic_int发生数据竞争。

你只需要std::atomic<T>如果你想访问一个共享变量没有互斥锁或其他同步,给一个线程一次独占所有权。

最新更新