c# – ConcurrentQueue vs Queue lock的性能

c# – ConcurrentQueue vs Queue lock的性能,第1张

概述我必须实现一个消费者一生产者的标准算法.我可以使用Queue和几个锁语句来实现它.或者我可以使用ConcurrentQueue.什么是更好的? 如果使用队列锁,那么我可以优化“多加/重新”,因为我可以锁一次,然后添加多次. 一般情况下更快 – ConcurrentQueue或Queue锁定和差异有多大?当然,ConcurrentQueue是最显着的方式,但是我不希望在HFT交易应用程序中使用这个方 @H_404_1@我必须实现一个消费者一生产者的标准算法.我可以使用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.

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

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

总结

以上是内存溢出为你收集整理的c# – ConcurrentQueue vs Queue lock的性能全部内容,希望文章能够帮你解决c# – ConcurrentQueue vs Queue lock的性能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1262796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存