HashMap、Hashtable与ConcurrentHashMap
来源:互联网 发布:卡通壁纸制作软件 编辑:程序博客网 时间:2024/05/21 17:55
Hashtable
ConcurrentHashMap安全性
非线程安全
线程安全
线程安全
性能
异步处理,性能高
同步处理,性能校低
适合高并发
null操作key和value允许存放null都不允许null都不允许null
ConcurrentHashMap=HashMap的高性能+Hashtable的线程安全
多线程环境下,使用Hashmap进行put操作可能产生不同的结果,是非线程安全的,所以在多线程情况下不能使用HashMap。
HashTable,但是HashTable使用synchronized(他的get和put方法的实现代码如下)来保证线程安全,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占。在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,访问其他同步方法的线程就可能会进入阻塞或者轮询状态。如线程1使用put进行添加元素,线程2不但不能使用put方法添加元素,并且也不能使用get方法来获取元素,所以竞争越激烈效率越低,不适合高并发。
ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了分段锁技术。它使用了多个锁来控制对hash表的不同部分进行的修改。put、remove操作会加锁,get读取操作不加锁。适合高并发场景。
HashMap JDK1.2 单线程情况下一般使用;
Hashtable JDK1.0 历史集合类,实现了map接口,已经逐渐被弃用;
ConcurrentHashMap JDK1.5 实际开发中多使用,多线程高并发场景;
阅读全文
0 0
- HashMap、Hashtable与ConcurrentHashMap
- HashMap、HashTable与ConcurrentHashMap区别
- HashMap、HashTable与ConcurrentHashMap的区别
- HashMap,Hashtable,ConcurrentHashMap,String、StringBuffer与StringBuilder,
- HashMap,HashTable,ConcurrentHashMap,ConcurrentSkipListMap
- HashMap、ConcurrentHashMap、HashTable、HashSet
- ConcurrentHashMap、HashMap、HashTable区别
- HashMap、HashTable、ConcurrentHashMap、Queue
- HashMap HashTable ConcurrentHashmap
- hashMap ,hashTable ,concurrentHashMap区别
- HashMap、HashTable、ConcurrentHashMap
- HashMap HashTable ConcurrentHashMap区别
- HashMap HashTable和ConcurrentHashMap
- Hashtable,HashMap,ConcurrentHashMap
- HashMap HashTable ConCurrentHashMap
- hashmap 、hashtable、 ConcurrentHashMap总结
- HashTable/HashMap/ConcurrentHashMap
- HashMap、HashTable、ConcurrentHashMap
- 八种经典排序算法复杂度
- Python 繁体中文与简体中文相互转换
- Python3.5 Tcp文件传输
- svn版本管理软件——svn日常管理代码
- 红黑树(RB-tree)比AVL树的优势在哪?
- HashMap、Hashtable与ConcurrentHashMap
- pyspark底层浅析
- Wi-Fi产品5G频段EVM测试不过问题的分析解决
- 【Linux学习笔记】30:declare命令(声明/取消/查看变量类型)
- 基数排序算法
- Java_基础—GUI(创建一个窗口并显示/布局管理器)
- mysql允许远程连接
- 计数排序算法
- C++ 快排算法