提问人:f1msch 提问时间:6/14/2022 最后编辑:Peter Cordesf1msch 更新时间:6/15/2022 访问量:1970
atomic_int 和 int 有什么区别? [复制]
What is the difference between atomic_int and int? [duplicate]
问:
这个问题在这里已经有答案了:
在特定情况下,递增 int 是否有效原子? (13 个回答)
atomic<int> 和 int 之间的区别 (2 个答案)
std::atomic到底是什么? (3 个答案)
去年关闭。
当只在线程之间的关键部分写入和读取 int 时,线程不是安全的吗? 那么atomic_int和int有什么区别呢? “int”不是原子的吗?
答:
2赞
Caleth
6/14/2022
#1
标准保证 A 完全没有数据竞争。您不需要使用关键部分来保护它。std::atomic_int
如果你不会与数据竞争(例如在关键部分,有一个锁,所有访问变量都尊重),那么你就不会使用任何一个。int
std::atomic_int
仅当您想访问一个没有互斥锁或其他同步的共享变量时,您才需要一次提供 1 个线程的独占所有权。std::atomic<T>
评论
0赞
f1msch
6/15/2022
但是没有锁的写/读不是原子本身吗?如果不考虑内存顺序或问题。int
i++
评论
int
mov
atomic_int
xchg
std::atomic
std::atomic_*