文档章节

CopyOnWriteArrayList与Collections.synchronizedMap性能

MarkCo
 MarkCo
发布于 2016/04/20 15:22
字数 228
阅读 45
收藏 0

平台:

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的方法初始化就会造成溢出。


本文转载自:http://blog.csdn.net/wind5shy/article/details/5396887

共有 人打赏支持
MarkCo
粉丝 2
博文 21
码字总数 5185
作品 0
浦东
架构师
私信 提问
java 中的List,Set,Map,Queue的线程问题

本文内容摘自:http://www.cnblogs.com/sarafill/archive/2011/05/18/2049461.html 总结:具体来说,Vector,Hashtable在操作上是线程安全的,但在遍历时线程并不安全,同理Collections.synch...

IamOkay
2014/11/11
0
0
[Java 并发编程] 集合框架之 同步容器类 & 并发容器类

吾生也有涯,而知也无涯。———《庄子》 通过上一篇文章,我们已经知道设计一个线程安全类的原则和步骤,以及在设计过程中我们应当注意的细节。实际上,Java 的集合库包含了线程安全集合和非...

seaicelin
05/25
0
0
java5同步集合类的应用

一、概述 1、传统集合类在并发访问时的问题说明 2、传统方式下用Collections工具类提供的synchronizedCollection方法来获得同步集合,分析该方法的实现源码。 3、传统方式下的Collection在迭...

哎小艾
01/18
1
0
Hashmap/Hashtable/ConcurentHashmap/synchronizedMap

Hashtable提供了一种易于使用的、线程安全的、关联的map功能。 然而,线程安全性是凭代价换来的——Hashtable的所有方法都是同步的。synchronized是针对整张Hash表的,即每次锁住整张表让线程...

chape
2014/03/24
0
0
Java集合--线程安全(CopyOnWrite机制)

5 Java并发集合 5.1 引言 在前几章中,我们介绍了Java集合的内容,具体包括ArrayList、HashSet、HashMap、ArrayQueue等实现类。 不知道各位有没有发现,上述集合都有一个共同的特点,那就是线...

贾博岩
2017/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
27分钟前
0
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
39分钟前
1
0
I2C EEPROM驱动实例分析

上篇分析了Linux Kernel中的I2C驱动框架,本篇举一个具体的I2C设备驱动(eeprom)来对I2C设备驱动有个实际的认识。 s3c24xx系列集成了一个基于I2C的eeprom设备at24cxx系列。at24cxx系列芯片包...

yepanl
40分钟前
2
0
设计模式之工厂模式

本篇博文主要翻译这篇文章: https://www.journaldev.com/1392/factory-design-pattern-in-java 由于翻译水平有限,自认为许多地方翻译不恰当,欢迎各位给出宝贵的建议,建议大家去阅读原文。...

firepation
今天
6
0

中国龙-扬科
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部