relaxed-atomics相关内容

具有memory_order_relaxed的存储区可能永远不会到达其他线程吗?

假设我有一个线程 A ,它使用 x.store( atomic_int x = 0; 1,std :: memory_order_relaxed); 。如果没有任何其他同步方法,则使用 x.load(std :: memory_order_relaxed); 需要多长时间才能看到其他线程?在给定标准提供的C / C ++内存模型的当前定义的情况下,写入 x 的值是否可能完全保持线程局部性? ..
发布时间:2020-09-27 20:45:20 C/C++开发

什么时候可以做/使用有未指定行为的东西?

在C ++中,有些东西出现在明确定义和未定义之间。具体来说,这些被称为实现定义和未指定。现在,我对未指定的内容感兴趣。 什么时候可以使用这些功能,什么时候应该避免?有没有良好的未指定行为的例子是正确的代码的一部分? 由Matt McNabb提供的定义: 未定义 - 可以发生任何事情 未指定 - 有限数量的结果是可能的 - 通常标准描述了可能的结果集 明确定义 - 以上 ..

无锁堆栈 - 这是正确使用c ++ 11放松原子吗?可以证明吗?

我写了一个容器,用于一个非常简单的数据,需要在线程间同步。我想要最好的性能。我不想使用锁。 我想使用“轻松”原子。 我一直在这方面做了很多,我在这个代码通过我抛出的所有测试的点。这不是很“证明”,所以我想知道是否有什么我失踪,或任何其他方式,我可以测试这个? 这是我的前提: 只有正确地推送和弹出节点才是重要的,堆栈不能被无效。 我相信操作在内存中的顺序只在一个地方是重要的 ..
发布时间:2016-10-23 11:40:18 C/C++开发