-
在引用计数中指向普通可销毁类型的memory_order_acquire是否多余?
这个问题专门针对引用计数指针中的可微破坏类型。请参见<a href="https://www.boost.org/doc/libs/1_55_0/doc/html/ato -
内存模型,负载获取语义实际上如何工作?
非常好的<a href="http://www.rdrop.com/users/paulmck/scalability/paper/whymb.2010.07.23a.pdf" rel="nofollow noreferrer">Paper</a>和<a -
为什么std :: atomic <T> :: is_lock_free()和constexpr一样不是静态的?
有人可以告诉我std :: atomic :: is_lock_free()是否像constexpr一样不是静态的吗?将它设为非静态和/或设为 -
使用memory_order_relaxed,如何确保典型体系结构上原子变量的总修改顺序?
据我了解,<code>memory_order_relaxed</code>是为了避免在特定体系结构上受更严格的排序而可能需要的昂贵的 -
为什么std :: atomic <std :: string>给出平凡的可复制错误?
我的程序很简单,我想使用原子类型。它适用于<code>int</code>或<code>double</code>,但不适用于<code>std::string< -
一些特定用例的C ++原子存储顺序
在下一种情况下,我将使用<code>atomic<uint64_t></code>作为计数器,并从5个或更多线程中对其进行递增 -
发布序列代码段可提供随机行为
我正在研究Rainer Grimm撰写的《 Concurrency With Modern C ++》一书中的示例,并且发现了此代码段(进行了一些 -
在ARM上加载和存储重新排序
我不是ARM专家,但是至少在某些ARM体系结构上,这些存储和装载不会受到重新排序吗? <pre><code> atom -
为什么std :: atomic的默认构造函数未默认初始化底层存储值?
因为今天是美国的感恩节,所以我将被指定为土耳其来问这个问题: 采取一些无害的措施。具有 -
std :: atomic如何实现
我正在研究C ++ 11中<code>mutex</code>和<code>atomic</code>之间的区别。 据我了解,<code>mutex</code>是一种锁 -
为什么std :: atomic构造函数在C ++ 14和C ++ 17中表现不同
我正在使用C ++ 11开发一个项目,并且尝试了以下代码 <pre><code>#include <atomic> struct A { std::atomi -
C ++多线程原子加载/存储
当我阅读本书<a href="https://github.com/mono/mono/issues/16759" rel="nofollow noreferrer">https://github.com/mono/mono/issues/16759 -
如何为数组中的原子变量调用compare_exchange_weak(0,1)?
当我写下这样的代码时: <pre><code>#include <atomic> #include <array> using namespace std; int main() { arr -
为什么C ++ 11标准不提供其他无锁原子结构
我知道<code>std::atomic_flag</code>被保证是无锁的,而其他原子材料(例如<code>std::atomic<int></code>,<code>s -
顺序一致性和获取/释放语义之间有什么区别?
据我所知,获取/释放语义充当顺序一致性和较弱的内存模型(或C ++称为“松弛”)所允许的无条件内存 -
memory_order_seq_cst防护栅什么时候有用?
C ++支持的<em> atomic </em>线程防护,即通过功能<code>std::atomic<></code>保证使用<code>atomic_thread_fence</code> -
对于CPU无法自动操作的类型,std :: atomic有什么意义?
使用<code>std::atomic</code>而不是互斥锁的全部目的是: <ol> <li>更高的多线程代码性能(读者之间没有 -
在x86上需要std :: memory_order_acquire栅栏吗? 一般
鉴于x86具有强大的内存模型,<code>std::memory_order_acquire</code>栅栏(<a href="https://preshing.com/20131125/acquire-and- -
在c ++ 20中std :: atomic <Floating>的std :: atomic <T> :: fetch_add
<a href="https://en.cppreference.com/w/cpp/atomic/atomic/fetch_add" rel="nofollow noreferrer">Here</a>表示c ++ 20支持<code>std::atom -
如何分配原子类型的向量?
如何为原子类型的向量分配成员? <pre><code>struct SomeStructTouple: Identifiable { let a: SomeStruct let b: SomeS -
与普通变量相比,仅读取原子变量有什么性能差异?
<pre><code>int i = 0; if(i == 10) {...} // [1] std::atomic<int> ai{0}; if(ai == 10) {...} // [2] if(ai.load(std::memory_order_rela -
如何实现atomic_flag?
如何实施<code>atomic_flag</code>?在我看来,在x86-64上无论如何它都等效于<code>atomic_bool</code>,但这只是一 -
par_unseq和“向量化不安全”功能
我对<code>par_unseq</code>执行策略施加的限制和“ <em> vectorization-unsafe </em>”功能的思想感到困惑。 -
红帽:使用<atomic>可以正常编译,但是链接器找不到__atomic_store_16;什么图书馆?
我第一次使用<code>atomic<></code>,就像使用<code><thread></code>要求您链接线程库一样,似乎使用<code -
std :: memory_order和指令顺序,澄清
这是对<a href="https://stackoverflow.com/questions/59626494/understanding-memory-order-acquire-and-memory-order-release-in-c11/5962916 -
保证逻辑AND表达式中的函数调用
我正在使用C ++原子重构某些代码。代码如下: <pre><code>std::atomic<bool> someFlag{}; // This can be set to t -
MyType允许std :: atomic <MyType>的确切要求是什么?
我想在线程之间交流一些信息。 原子听起来就像要使用的东西。 我看了<a href="https://en.cppreference.com/w/cpp -
是否可以将同一线程上的两个连续的memory_order_release存储相互重新排序?
同一线程上两个连续的<code>memory_order_release</code>存储区是否可以相互重新排序?从同一个线程还是从另 -
如果在2个线程中使用,是否值得将size_t声明为std :: atomic?
我有一个<code>size_t</code>变量,该变量由<code>std::thread</code>更新,并由另一个<code>std::thread</code>读取。 </p -
与原子布尔同步10个线程
我正在尝试使用10个线程,每个线程都需要打印其编号,并且打印需要同步。我正在做作业,我必须使用