标签:顺序 简单 做了 tail src 步骤 过程 注意 http
原文链接:https://blog.csdn.net/hll174/article/details/50915346
画了个图做了个演示。
1)假设我们有两个线程。我用红色和浅蓝色标注了一下。
而我们的线程二执行完成了。于是我们有下面的这个样子。
注意,因为Thread1的 e 指向了key(3),而next指向了key(7),其在线程二rehash后,指向了线程二重组后的链表。我们可以看到链表的顺序被反转后。
2)线程一被调度回来执行。
3)一切安好。
线程一接着工作。把key(7)摘下来,放到newTable[i]的第一个,然后把e和next往下移。
4)环形链接出现。
e.next = newTable[i] 导致 key(3).next 指向了 key(7)
注意:此时的key(7).next 已经指向了key(3), 环形链表就这样出现了。
标签:顺序 简单 做了 tail src 步骤 过程 注意 http
原文地址:https://www.cnblogs.com/fswhq/p/hashmap.html