欢迎光临
我们一直在努力

concurrenthashmap线程安全问题,concurrenthashmap最多支持多少线程

分析Hashtable就知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占;ConcurrentHashMap允许多个线程修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap 便宜香港vps 内部使用段(Segment)来表示这些不用的部分,每个段其实就是一个小的hashtable,它们有自己的锁。只要多个修改操作发生在不用的段上,它们就可以并发进行。有些方法需要跨段,比如size()和containsValue(),它们可能需要锁定整张表而不仅仅是某个段。这需要按顺序锁定所有段,操作完毕后,有按顺序释放所有段的锁。这里“按顺序”很重要,否则极有可能出现死锁。
下面是ConcurrentHashMap的结构图:

34120613

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。