加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ConcurrentQueue vs Queue lock的性能

发布时间:2020-12-15 04:19:20 所属栏目:百科 来源:网络整理
导读:我必须实现一个消费者一生产者的标准算法.我可以使用Queue和几个锁语句来实现它.或者我可以使用ConcurrentQueue.什么是更好的? 如果使用队列锁,那么我可以优化“多加/重新”,因为我可以锁一次,然后添加多次. 一般情况下更快 – ConcurrentQueue或Queue锁定
我必须实现一个消费者一生产者的标准算法.我可以使用Queue和几个锁语句来实现它.或者我可以使用ConcurrentQueue.什么是更好的?

如果使用队列锁,那么我可以优化“多加/重新”,因为我可以锁一次,然后添加多次.

一般情况下更快 – ConcurrentQueue或Queue锁定和差异有多大?当然,ConcurrentQueue是最显着的方式,但是我不希望在HFT交易应用程序中使用这个方法,因此我不希望失去很多性能.

解决方法

从 C# in a Nutshell:

The concurrent stack,queue,and bag classes are implemented
internally with linked lists. This makes them less memory efficient
than the nonconcurrent Stack and Queue classes,but better for
concurrent access because linked lists are conductive to lock-free or
low-lock implementations.

换句话说,很难定义一般的情况,更不要说预测性能差异是什么.

这取决于收集的大小和使用情况.性能可以预期更好,给予足够的并发访问,内存消耗将会更差.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读