hashmap 和 concurrentHashMap
来源:互联网 发布:阿里数据与谁 编辑:程序博客网 时间:2024/05/18 01:02
通过Hashtable就知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行。
有些方法需要跨段,比如size()和containsValue(),它们可能需要锁定整个表而而不仅仅是某个段,这需要按顺序锁定所有段,操作完毕后,又按顺序释放所有段的锁。这里“按顺序”是很重要的,否则极有可能出现死锁,在ConcurrentHashMap内部,段数组是final的,并且其成员变量实际上也是final的,但是,仅仅是将数组声明为final的并不保证数组成员也是final的,这需要实现上的保证。这可以确保不会出现死锁,因为获得锁的顺序是固定的。
0 0
- HashMap和ConcurrentHashMap浅析
- HashMap和ConcurrentHashMap浅析
- HashMap和ConcurrentHashMap
- HashMap和ConcurrentHashMap分享
- hashmap 和 concurrentHashMap
- HashMap 和ConcurrentHashMap
- HashMap和ConcurrentHashMap比较
- concurrenthashmap和hashmap
- HashMap和ConcurrentHashMap分享
- HashMap和ConcurrentHashMap研究
- ConcurrentHashMap和HashMap
- HashMap HashTable和ConcurrentHashMap
- HashMap和ConcurrentHashMap
- HashMap和ConcurrentHashMap浅析
- HashMap和ConcurrentHashMap
- HashMap和ConcurrentHashMap流程图
- HashMap和ConcurrentHashMap比较
- HashMap和ConcurrentHashMap
- Android学习之IO流
- 4.17
- 2015062102 - 亲近自然
- 使用pptpd搭建VPN
- 旧手机是”古董“千万不要卖掉,自己一直保存在家里(安全第一)
- hashmap 和 concurrentHashMap
- CF 549G swap(前-1,后+1),问是否能变成递增序列(灵活题)
- ubuntu搭建配置架设VPN服务器PPTP(简单)
- Algorithms—202.Happy Number
- 第一个HTML5代码:HTML、HTML、CSS
- Linux学习日志--文件处理命令
- cocos2d-x核心类剖析-CCDirector类
- Uva - 10954 - Add All
- 分享45个android实例源码