2017-03-25 48 views

回答

2

Vector單獨爲每個方法同步對其數據的訪問。

可能有些情況下根本不需要同步,但它不能從向量中刪除。對於這種情況,Vector將會效率低下,因爲不必要的同步仍然會產生成本。

另一方面,可能會出現方法調用的整個序列應該同步的情況。然後,Vector方法的個體同步是無用的,並且再次增加了性能成本。

ArrayList可用於多線程程序,但具有外部同步。

我建議您閱讀Java Concurrency in Prctice以深入瞭解該主題。它可以幫助您瞭解外部/內部同步,併發集合以及更多的知識,這些都是真正瞭解同步方式之間的差異所必需的。

+0

數組列表或鏈接列表方法是否可以在外部同步?當然是 –

+1

:兩者都使用Collections.synchronizedList()。 –

相關問題