CocurrentHashMap和Hashtable的区别
来源:互联网 发布:自由程序员 编辑:程序博客网 时间:2024/06/05 10:25
集合类是Java API的核心,但是我觉得要用好它们是一种艺术。我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等 等。JDK 1.5引入了一些好用的并发集合类,它们对于大型的、要求低延迟的电子商务系统来说非常的有用。这篇文章中将会看看ConcurrentHashMap和 Hashtable之间的区别。
本篇是HashMap的工作原理以及HashMap和Hashtable的区别的后续。如果你已经读过的话,那么我相信你读完本篇之后会有所收获。
为什么我们需要ConcurrentHashMap和CopyOnWriteArrayList
同步的集合类(Hashtable和Vector),同步的封装类(使用Collections.synchronizedMap()方法和 Collections.synchronizedList()方法返回的对象)可以创建出线程安全的Map和List。但是有些因素使得它们不适合高并 发的系统。它们仅有单个锁,对整个集合加锁,以及为了防止ConcurrentModificationException异常经常要在迭代的时候要将集 合锁定一段时间,这些特性对可扩展性来说都是障碍。
ConcurrentHashMap和CopyOnWriteArrayList保留了线程安全的同时,也提供了更高的并发性。 ConcurrentHashMap和CopyOnWriteArrayList并不是处处都需要用,大部分时候你只需要用到HashMap和 ArrayList,它们用于应对一些普通的情况。
ConcurrentHashMap和Hashtable的区别
Hashtable和ConcurrentHashMap有什么分别呢?它们都可以用于多线程的环境,但是当Hashtable的大小增加到一定的时候, 性能会急剧下降,因为迭代时需要被锁定很长的时间。因为ConcurrentHashMap引入了分割(segmentation),不论它变得多么大, 仅仅需要锁定map的某个部分,而其它的线程不需要等到迭代完成才能访问map。简而言之,在迭代的过程中,ConcurrentHashMap仅仅锁定 map的某个部分,而Hashtable则会锁定整个map。
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- CocurrentHashMap和Hashtable的区别
- 什么是HashTable?HashMap和HashTable的区别
- HashMap和HashTable的区别,HashTable和ConcurrentHashMap的区别
- JDBC:元数据 && 获取插入记录的主键值 && _JDBC_处理 Blob
- 在Android上怎样实现JAVA和JS交互呢
- 【AppCan年会纪实】妹子奖金海岛游、奖奖奖拿拿拿
- (原创)尽管少写那么多代码,但省下来的时间又在哪里呢
- jBPM工作流应用
- CocurrentHashMap和Hashtable的区别
- 记录一次给mysql加日期分区的经历
- 使用Apache HttpClient发送get、post请求
- 关于socket应该被翻译为多孔插座
- source insight中文注释乱码问题的解决方案
- 欢迎使用CSDN-markdown编辑器
- 13.2.2 从故障中恢复
- WP--图片缩放
- Mybatis一个分页插件