概述
ConcurrentHashMap内部数据结构是hashTable,但是与hashTable不同的是CurrentHashMap使用了锁分离技术,即:使用多个不同的锁来控制对HashTable的不同部分进行修改,其内部的不同部分使用Segment来表示。这样一个大的HashTable就会被分为多个小的HahTable,每个锁作用在不同的小HashTable上。当多个操作发生在不同的Segment上,就可以进行并发操作了。
但是有些操作例如:size(),需要将整个表锁定,先按顺序锁定每个段的,然后进行操作,操作完后再按顺序释放所有段的锁。
ConcurrentHashMap实际上就是将一个大HashTable分割成多个小的HashTable,然后在每个小的HashTable上加锁,实现锁分离。
ConcurrentHashMap的实现方式:
ConcurrentHashMap主要有三个实体类:ConcurrentHashMap(整个Hash表),Segment(桶),HashEntry(节点)。
应用场景:当有一个大数组或集合需要多个线程共享
最后
以上就是曾经高跟鞋为你收集整理的CurrentHashMap原理的全部内容,希望文章能够帮你解决CurrentHashMap原理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复