天天看点

JDK1.8中,ConcurrentHashMap进行了哪些优化?在Java中,ConcurrentHashMap在1.

作者:架构师奶爸

JDK1.8中,ConcurrentHashMap进行了哪些优化?在Java中,ConcurrentHashMap在1.8中进行了数据结构优化、写操作存储优化和计数器优化。

其中,数据结构优化将原来的table数组加单向链表的数据结构变更为table数组加单向链表+红黑树的结构。对于哈希表来说,最核心的能力在于将key hash之后能均匀地分布在数据中。如果hash之后散列得很均匀,那么table数组中的每个队列长度主要为0或者1,但实际情况并非总是如此理想。

在1.8中,如果节点个数超过8,则链表采用红黑树结构,查询时间复杂度可以降低到0logN。写操作存储优化采用CAS加同步锁头节点的方式,锁的粒度更小,减少了并发冲突的概率。

计数器优化采用longAdder的方式,如果并发自增操作CAS失败,则数据单独存储到一个数组中进行计数,提高了并发性能。这些优化使得ConcurrentHashMap在并发环境下具有更好的性能表现。想要学习更多Java编程知识,请关注我架构师奶爸,共同筑基Java架构师。

JDK1.8中,ConcurrentHashMap进行了哪些优化?在Java中,ConcurrentHashMap在1.
JDK1.8中,ConcurrentHashMap进行了哪些优化?在Java中,ConcurrentHashMap在1.
JDK1.8中,ConcurrentHashMap进行了哪些优化?在Java中,ConcurrentHashMap在1.
JDK1.8中,ConcurrentHashMap进行了哪些优化?在Java中,ConcurrentHashMap在1.

继续阅读