不是atomic<bool>多余的,因为bool它本质上是原子的吗?我认为不可能有部分修改的bool值.我什么时候真的需要用atomic<bool>而不是bool?
显然,顺序一致的原子操作的有效可观察行为与有效C++程序中的仅获取释放操作不同.定义在C++标准(自C++ 11以来)或此处给出.
但是,我从来没有遇到过一个算法或数据结构的真实例子,其中获取 - 释放语义不足并且需要顺序一致性.
什么是真实世界算法或数据结构的实际例子,其中需要顺序一致性并且获取 - 释放内存顺序是不够的?
注意,即使std::mutex不保证顺序一致性.
让\xe2\x80\x99s 说我有一个硬件,在该硬件上,所有对内存的访问都小于或等于大小bool都是线程安全的,并且由于硬件或代码而避免了与缓存有关的一致性问题。
我是否应该期望从多个线程对同一对象的非原子访问将仅编译 \xe2\x80\x9cas coded\xe2\x80\x9d ,以便我获得该平台的线程安全程序?
\n