Chinaunix
标题:
操作atomic<>变量,是否要mutex,条件变量等的协助?
[打印本页]
作者:
zhycjh
时间:
2018-07-30 13:11
标题:
操作atomic<>变量,是否要mutex,条件变量等的协助?
多个线程更新同一个变量,在没有atomic之前,都是用互斥体和条件变量之类的方式来做到的,在mutex的lock范围内更新变量。
那么现在有了atomic<>,我想知道在多个线程更新/读写这一类变量的时候,是否还有场景需要用std::mutex或者conditional_variable等等。
单纯用atomic会有什么可能的问题吗?
作者:
codechurch
时间:
2018-07-30 17:38
atomic 一般称为“原子操作”,这个术语是指:cpu体系结构所提供的对机器字和双字内存的原子性访问和修改。
它与mutex有本质区别。
作者:
lxyscls
时间:
2018-08-01 10:43
zhycjh 发表于 2018-07-30 13:11
多个线程更新同一个变量,在没有atomic之前,都是用互斥体和条件变量之类的方式来做到的,在mutex的lock范 ...
https://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html
不需要协助,两码事
mutex和cond还涉及到交出线程调度的逻辑
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2