用于在不使用锁的情况下同步多线程环境或其他形式的分布式系统的方法和算法的总称。
我一直在尝试在 CUDA 中实现无锁队列,但由于某种原因我的代码出现死锁,特别是当我运行下面的测试用例时。 代码: #包括 #include "stdio.h&
我正在尝试在 mpi RMA 中实现无锁分布式链表。 这是插入函数的代码,它在给定键的节点后插入一个新节点。 void insertAfter(int id, int newVal, int ke...
如果线程 1 运行: this.Field.Flag = false; ... var oldValue = Interlocked.Exchange(ref this.Field, newValue); oldValue.Flag = true; 并且线程 2 看到 oldValue.Flag == true,是否保证...
我是否需要 MemoryBarrier 来增加无锁集合中的索引
我正在尝试实现一个简单而快速的生产者/消费者集合,能够从另一个线程复制并使其尽可能快,因此我没有使用任何锁定
我有一个无锁缓存的算法,我可以证明它没有错误(在一致的内存模型中)。但是在运行时我看到程序失败,这不取决于我使用的内存语义。我有...
我有一个无锁缓存的算法,我可以证明它没有错误(在一致的内存模型中)。但是在运行时我看到程序失败,这不取决于我使用的内存语义。我有...
我正在寻找具有以下属性的线性容器的实现,例如 std::vector 或 std::stack: 操作是线程安全的 没有互斥锁或自旋锁,即使是
在C++中,有一种原子类型std::atomic。这种原子类型可能是无锁的,也可能不是,这取决于类型 T 和当前平台。如果一个类型的无锁实现是
RISC-V 的 C++ 多读取器/写入器无锁 FIFO 队列?
我们公司正在考虑切换到基于 RISC-V 的嵌入式处理器。由于我们的应用程序大量使用队列作为主要的线程间通信系统,因此最好实现...
假设你有两个线程,一个线程创建一个TSX事务,并修改一些数据结构。另一个线程不做任何形式的同步,读取相同的数据结构。是 ...
多个生产者为单一消费者的情况,除了消费发生一次之后,队列“关闭”并且不允许进行更多工作。我有一个MPSC队列,因此我尝试添加无锁...
我正在尝试为ARM写一个单一生产者单一使用者队列,我想我已经将DMB束之高阁,但需要进行一些检查(我对std :: atomic更为熟悉。) 'm ...
在C ++ Concurrency in Action,2e中,作者描述了无锁线程安全链表的实现。现在,他正在描述pop()方法以及如何以“ ...
如果T是C ++基本类型,并且std :: atomic :: is_lock_free()返回true,那么std :: atomic 中有没有等待的内容(不仅仅是无锁的)?例如,加载,存储,... ] >>
让我们想象一个无锁的并发SPSC(单生产者/单消费者)队列。生产者线程读取head,tail,cached_tail并写入head,cached_tail。使用者线程读取head,...
public void Push(Node newNode){while(true){Node tmp = this.head; newNode.next = tmp;如果(Interlocked.CompareExchange(ref this.head,newNode,...
C ++标准中关于多线程内存模型的部分我不了解。关于标量对象或位域M的可见副作用A相对于M ...的值计算B ...
C ++ 11/14/17:读者/作家的锁……没有读者的锁?
我感觉这可能是非常普遍的情况,存在着众所周知的无锁解决方案。简而言之,我希望有一种类似读/写器锁的方法,但是那不是...
为什么已经使用seq_cst CAS的无锁队列中需要atomic_thread_fence(memory_order_seq_cst)?
无锁队列,只有一个线程执行推入和弹出,其他线程执行窃取。但是,我不明白为什么secret()需要std :: atomic_thread_fence(std :: memory_order_seq_cst)。我认为,steal(...