首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CircularBuffer高效实现(线程安全和非线程安全)

CircularBuffer高效实现(线程安全和非线程安全)
EN

Stack Overflow用户
提问于 2012-11-07 18:36:06
回答 1查看 48.2K关注 0票数 35

有人能建议良好的CircularBuffer实现吗?我需要“不线程安全”和“线程安全”版本。我期望采取以下行动:

  • 在创建时提供缓冲区大小的能力
  • 添加元素
  • 迭代元素
  • 迭代时删除元素
  • 可能移除元素

我希望实现在速度和使用内存,平均和最坏的时间等方面得到高度优化。

我期望“不线程安全”实现会非常快。我预计“线程安全”实现将是快速的,可能使用“无锁代码”进行同步,如果这是速度所必需的,也可以有一些限制。

如果缓冲区太小,无法存储新的(添加)元素,则可以覆盖现有元素或引发异常。

我应该使用disruptor.net吗?

添加链接到一个很好的示例Disruptor.NET实例

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-07 18:40:00

不是线程安全:

System.Collections.Generic.Queue

线程安全:

System.Collections.Concurrent.ConcurrentQueue

System.Collections.Concurrent.BlockingCollection (默认在内部使用并发队列)

尽管从技术上讲,您不应该使用“线程安全”这个术语。太模棱两可了。第一个不是设计为多个线程并发使用的,其余的都是。

票数 -6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13275975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档