多线程hashmap会死循环吗,并发的HashMap为什么会引起死循环

2021-01-11 19:22:28 字数 559 阅读 5840

1楼:匿名用户

主要是多线程同时put时,如果同时触发了rehash操作,会导致hashmap中的链表中出现循环节点,进而使得后面get的时候,会死循环。

并发的hashmap为什么会引起死循环

2楼:可爱的很突然

递归死循环肯定是中止条件错了!看了你的**while (i < len) 这个地方造成死循环了!因为i的值永远是0;并且a[0]的值与key不相等;所以死循环在这里!

hashmap的.clear()方法并发情况下安全吗?

3楼:育知同创教育

如果使用hashmap,我们已经清楚不是线程安全的了,a. put 的数据丢失。

b. remove 的数据未被清除,仍然存在。

c. hashmap resize 导致存在性能问题。

d. get 数据时出现死循环。

4楼:匿名用户

单个线程使用,没有问题

多线程使用,都要加锁