码迷,mamicode.com
首页 > 其他好文 > 详细

ConcurrentHashMap原理分析

时间:2020-06-26 10:23:36      阅读:46      评论:0      收藏:0      [点我收藏+]

标签:segment   size   接下来   结构图   并发   hashmap原理   派生   简单   比较   

CHM 的使用
ConcurrentHashMap 是 J.U.C 包里面提供的一个线程安全并且高效的 HashMap,所以 ConcurrentHashMap 在并发编程的场景中使用的频率比较高,那么这一节课我们就从 ConcurrentHashMap 的使用上以及源码层面来分析 ConcurrentHashMap 到底是如何实现 安全性的
api 使用
ConcurrentHashMap是Map的派生类,所以api基本和 Hashmap是类似,主要就是put、 get 这些方法,接下来基于 ConcurrentHashMap 的 put 和 get 这两个方法作为切入点来分 析ConcurrentHashMap的源码实现

ConcurrentHashMap 的源码分析
先要做一个说明,这节课分析的ConcurrentHashMap是基于jdk1.8的版本。
JDK1.7 和 Jdk1.8 版本的变化
ConcurrentHashMap 和 HashMap 的实现原理是差不多的,但是因为 ConcurrentHashMap 需要支持并发操作,所以在实现上要比hashmap稍微复杂一些。 在 JDK1.7 的实现上,ConrruentHashMap 由一个个 Segment 组成,简单来说, ConcurrentHashMap是一个Segment数组,它通过继承ReentrantLock来进行加锁,通过 每次锁住一个segment来保证每个segment内的操作的线程安全性从而实现全局线程安全。 整个结构图如下

 

ConcurrentHashMap原理分析

标签:segment   size   接下来   结构图   并发   hashmap原理   派生   简单   比较   

原文地址:https://www.cnblogs.com/zpp1234/p/13193944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!