Advertisement

ConcurrentHashMap原理与常见问题

阅读量:

ConCurrentHashMap实现与应用

目录

前言

1.7实现的ConcurrentHashMap

底层结构---由Segments数组、HashEntry数组以及链表构成,通过分段锁机制确保线程安全

初始化过程

put操作流程

1.8实现的ConcurrentHashMap

底层数据结构如下:

get()操作方式:

put()操作方式:

与ConcurrentHashMap相关的一些问题

1、在JDK1.8版本中,为何选择使用synchronized关键字替代可重入锁ReentrantLock?

2、ConcurrentHashMap与Hashtable之间存在哪些差异?

3、HashMap和ConcurrentHashMap之间有哪些不同之处?

注意


前言

当HashMap中插入的元素数量超出其容量限制时,系统将自动调用rehash方法以实现扩容操作。在多线程环境下执行put操作时,若多个线程同时对具有相同哈希值的位置进行数据写入,可能导致该数组对应的链表结构出现环状连接,从而在后续的get操作中引发死循环问题,因此HashMap不具备线程安全性。

与之相对,HashTable通过采用synchronized关键字对整个表结构进行加锁处理,确保了其在多线程场景下的线程安全性。然而,这种全局锁机制

全部评论 (0)

还没有任何评论哟~