我正在寻找一种方法来实现无锁队列数据结构,支持单个生产者和多个消费者。我看过Maged和Michael Scott (1996)的经典方法,但他们的版本使用了链表。我想要一个使用有界循环缓冲区的实现。顺便说一句,我不确定为什么这些经典方法是为需要大量动态内存管理的链表设计的。在多线程程序中,所有内存管理例程都是序列化的。我们不是因为将无锁方法与动态数据结构结合使用而失去了它们的好处吗?我正在尝试使用Intel 64位体系结构上的pthread库在C/C++中对此进行编码。
谢谢你,Shirish