码迷,mamicode.com
首页 > 其他好文 > 详细

jdk1.7扩容时,不论是否有链表,并发都可能出现循环链表

时间:2019-10-12 18:49:23      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:ash   直接   tran   tab   nsf   hash   ble   链表   并发   

扩容时使用transfer
transfer不同于put时的判断hash冲突,直接使用头插法,如果没有冲突,则next为null。
如下:
e.next = newTable[i];
newTable[i] = e;
如果线程B设置了newTable[i] = e,线程A执行e.next = newTable[i];
则会造成e.next = e;不论是否有链表,都会造成死循环。

jdk1.7扩容时,不论是否有链表,并发都可能出现循环链表

标签:ash   直接   tran   tab   nsf   hash   ble   链表   并发   

原文地址:https://www.cnblogs.com/vsop/p/11663094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!