CopyOnWriteArrayList与Collections.synchronizedMap性能

平台:

AMD X2 5400+2G RAMJDK6eclipse 3.4数组

CopyOnWriteArrayList:专为多线程并发设计的容器,“写入时复制”策略。多线程

Collections.synchronizedMap:同步容器,独占策略。并发



分析:

能够看到随着线程数不断翻倍,CopyOnWriteArrayList的访问时间基本也是翻倍,但Collections.synchronizedMap的时间则是*4。在两个线程下Collections.synchronizedMap访问时间大概是CopyOnWriteArrayList5倍,但在64线程的时候就变成了200+。因此若是在容器彻底只读的状况下CopyOnWriteArrayList绝对是首选。但CopyOnWriteArrayList采用“写入时复制”策略,对容器的写操做将致使的容器中基本数组的复制,性能开销较大。因此但在有写操做的状况下,CopyOnWriteArrayList性能不佳,并且若是容器容量较大的话容易形成溢出。代码中若是CopyOnWriteArrayList cl按照ArrayList al的方法初始化就会形成溢出。eclipse

相关文章
相关标签/搜索