2016 - 2024

感恩一路有你

currenthashmap面试 currenthashmap是线程安全的吗,数据结构,底层怎么优化的?

浏览量:1203 时间:2021-03-17 08:51:14 作者:admin

currenthashmap是线程安全的吗,数据结构,底层怎么优化的?

Currenthashmap是线程安全的。当多个线程同时更新一个数据时,不会出现同时得到修改的情况。在java7和java8中,结构不一样,java8做了很多优化。

1. 并发HashMap是通过数组链表的段锁来实现的。

2. 锁定操作锁定一个部分,而不是锁定整个结构。其它各段均能正常工作,保证了螺纹的安全性,提高了效率。

3. 但是,这个位置很麻烦。元素位置需要散列两次,第一次是定位段,第二次是定位元素所在的链表头。

1. java8采用数组链表红黑树设计,CAS实现线程安全。

2. 最初在Java7中使用的段锁定现在被调整为锁定每个数组元素。

3. 与java8中的HashMap一样,它采用了红黑树结构,因此查询效率更快。当链表节点数超过8个时,链表将被转换成红黑树存储,但哈希冲突加剧。

4. 查询时间复杂度:从原始遍历链表o(n)到遍历红黑树o(logn)。

currenthashmap是线程安全的吗?

它必须是安全的,否则人们已经有了HashMap,他们为什么要写这个

hashtable被广泛使用。HashMap是新框架中用来替换hashtable的类,也就是说,建议使用HashMap代替hashtable。

也许您认为哈希表很容易使用,为什么不呢?下面简要分析一下他们之间的差异。1hashtable的方法是同步的,HashMap是不同步的,所以很多

3。删除元素时,这两种算法是不同的。

currenthashmap面试 currenthashmap初始化 currenthashmap使用

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。