想知道 .NET 中是否存在只有一个写入器但可以有多个使用者的现有环形缓冲区?
不用说,有多个线程从这个缓冲区读取(但只有一个线程写入),所以实现必须是线程安全的。
想知道 .NET 中是否存在只有一个写入器但可以有多个使用者的现有环形缓冲区?
不用说,有多个线程从这个缓冲区读取(但只有一个线程写入),所以实现必须是线程安全的。
看看ConcurrentQueue
和类似的 - 这些是线程安全的并且非常快,因为大多数事情都是无锁实现的......它们可以处理多个消费者甚至多个写入者......
看看这篇文章,它真的很好http://www.albahari.com/threading/part5.aspx我建议你想要BlockingCollection<T>
每当在 .NET 中缓冲 + 线程时,您都需要 Rx。见new ReplayBuffer<T>(int)
。 http://msdn.microsoft.com/en-us/library/hh229429.aspx
上次我听说 Disruptor.NET 有很多错综复杂的细节,你需要了解才能获得任何性能优势。我建议先在 Rx 中建模,当您在 Rx 中工作的数据集较小(<10k)时转移到 Disruptor,然后专注于性能。