AMD X2 5400+,2G RAM,JDK6,eclipse 3.4數組
CopyOnWriteArrayList:專爲多線程併發設計的容器,「寫入時複製」策略。多線程
Collections.synchronizedMap:同步容器,獨佔策略。併發
能夠看到隨着線程數不斷翻倍,CopyOnWriteArrayList的訪問時間基本也是翻倍,但Collections.synchronizedMap的時間則是*4。在兩個線程下Collections.synchronizedMap訪問時間大概是CopyOnWriteArrayList的5倍,但在64線程的時候就變成了200倍+。因此若是在容器徹底只讀的狀況下CopyOnWriteArrayList絕對是首選。但CopyOnWriteArrayList採用「寫入時複製」策略,對容器的寫操做將致使的容器中基本數組的複製,性能開銷較大。因此但在有寫操做的狀況下,CopyOnWriteArrayList性能不佳,並且若是容器容量較大的話容易形成溢出。代碼中若是CopyOnWriteArrayList cl按照ArrayList al的方法初始化就會形成溢出。eclipse