阅读326 返回首页    go 阿里云 go 技术社区[云栖]


阻塞队列的性能对比


主要是比较offer跟poll两个方法的性能,开N个线程,每个线程往队列里写或者取500个整数。

线程数
20
50
100
200
500 1000
LinkedBlockingQueue     
15,0
31,15
32,16
63,32
203,47
563,110
ArrayBlockingQueue 15,0
16,15
31,15
47,16
125,47
364,68
PriorityBlockingQueue 78,78
172,188
360,422
813,969
3094,2641
6547,5453

逗号前的数字是offer测试花费的时间,逗号后的数字是poll测试花费的时间,单位毫秒。
结论:
1、ArrayBlockingQueue性能优于LinkedBlockingQueue,但是LinkedBlockingQueue是无界的。
2、ArrayBlockingQueue和LinkedBlockingQueue的poll方法总是比offer方法快,并发越高,差距越大
3、ArrayBlockingQueue和LinkedBlockingQueue的性能远高于PriorityBlockingQueue,显然优先队列在比较优先级上的操作上耗费太多文章转自庄周梦蝶 
,原文发布时间2008-09-08

最后更新:2017-05-18 11:01:42

  上一篇:go  《Spring 5 官方文档》1. Spring入门指南(二)
  下一篇:go  Lua学习小记——语言