我找到了几个单生产者-单消费者的实现,但没有找到多生产者-单消费者的实现。
在Delphi中是否存在“多生产者-单消费者”的无锁队列?
我找到了几个单生产者-单消费者的实现,但没有找到多生产者-单消费者的实现。
在Delphi中是否存在“多生产者-单消费者”的无锁队列?
http://svn.berlios.de/svnroot/repos/dzchart/utilities/dzLib/trunk/lockfree/
@Daniele Teti:
读者必须等待所有仍然可以访问旧队列的写入者退出Enqueue方法。由于读者在Dequeue方法中首先要做的事情是为新进入Enqueue的写入者提供一个新的队列,因此所有引用旧队列的写入者退出Enqueue方法不应该需要太长时间。但你是对的:它只是针对写入者无锁,但可能仍需要读取线程等待某些写入者退出Enqueue。