2014-03-06 96 views
-1

Java 7中提供廣泛的併發隊列的不同實現的,即:併發隊列性能

java.util.concurrent.ArrayBlockingQueue<E> 
java.util.concurrent.ConcurrentLinkedQueue<E> 
java.util.concurrent.LinkedBlockingDeque<E> 
java.util.concurrent.LinkedBlockingQueue<E> 

有沒有人找到任何性能特點,即它其中的一個似乎是最快的?我想在我的代碼中使用其中一個性能關鍵部分的實現。

+7

[如果你有兩匹馬,你想知道哪兩匹比賽跑得更快,那麼比賽馬匹。](http://ericlippert.com/2012/12/17/performance-rant/) – dcastro

+0

確實如此:)也許我會運行一些性能特徵並將其發回。我是懶惰和不知道是否有人已經這樣做了 – Bober02

+0

我的猜測是去'LinkedBlockingDeque',因爲它使用了較新的'Deque'接口。 –

回答

3

有沒有可能的方式說這是「最快」。這個問題沒有多大意義。什麼最快?您必須提供至少一定數量的要求。垃圾收集將會產生影響。緩存行爲也會發揮作用,並取決於數據訪問模式。

在確定您的性能要求未得到滿足並通過適當的分析和基準測試確定容器操作爲瓶頸之後,您需要在自己的特定情況下測試並測試自己的代碼。

的併發集合通常表現出相同的高水平的性能特點作爲其香草對應。