主要是比較offer跟poll兩個方法的性能,開n個線程,每個線程往隊列裡寫或者取500個整數。
線程數
20
50
100
200
500
1000
linkedblockingqueue
15,0
31,15
32,16
63,32
203,47
563,110
arrayblockingqueue
16,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,顯然優先隊列在比較優先級上的操作上耗費太多文章轉自莊周夢蝶
<b>,原文釋出時間</b>2008-09-08 <b></b>