首页 > 代码库 > ConcurrentHashMap

ConcurrentHashMap

ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hashTable,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行.有些方法需要跨段,比如size()和containsValue(),它们可能需要锁定整个表而而不仅仅是某个段,这需要按顺序锁定所有段,操作完毕后,又按顺序释放所有段的锁。

ConcurrentHashMap是线程安全的。
ConcurrentHashMap不允许存在key为null的情况。

ConcurrentHashMap