ConcurrentHashMap 初认识
来源:互联网 发布:黑帽seo软件 编辑:程序博客网 时间:2024/05/27 00:32
1,ConcurrentHashMap是线程安全且高效的HashMap
2,为什么要使用ConcurrentHashMap?
因为在多线程环境下,使用HashMap进行put操作会引起死循环。HashTable使用synchronized来保证线程安全。但是在线程竞争激烈的情况下。HashTable的效率是很低的。
3ConcurrentHashMap的锁分段技术
4,ConcurrentHashMap的get操作
·get操作非常高效,因为不需要加锁,因为共享变量全部定义成volatile,能够被多线程读,且保证不读到过期的值
5,ConcurrentHashMap的put操作
在操作共享变量时必须加锁。首先定位Segment,然后进行插入。会先判断是否对HashEntry扩容
6,ConcurrentHashMap的size操作
会使用modcount记录put,clear,modify的操作,先尝试两次不加锁的累加每个segment里面的数组长度,如果modcount没变化,即可以不锁定put,clear,modify,实现累加计算出size大小。
0 0
- ConcurrentHashMap 初认识
- 认识HashMap,ConcurrentHashmap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- ConcurrentHashMap
- concurrenthashmap
- Andorid 如何获取屏幕的大小
- java学习网站(国内外)
- 第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析学习笔记
- 【LeetCode】122.Best Time to Buy and Sell Stock II
- CentOS 7 搭建vsFtp服务器 全教程
- ConcurrentHashMap 初认识
- 九度oj 1037
- HDU 3507 Print Article
- CLBeaconRegion(地理区域)的讲解
- 理解java的多态
- Codeforces Round #316 (Div. 2)-D. Tree Requests-DFS+二分+hash
- Spring中的设计模式
- java学习个人笔记---类成员变量初始化顺序
- 大型分布式网站的技术需求