JDK7对旧table
数据重定位到新table
的函数transfer
如下,其中重点关注部分以标出。
- 头插法正常情况下:
- 并发情况下
线程1只执行了Entry<K,V> next = e.next
就被挂起了,而线程2正常执行完毕,结果图如下:
线程1接着下面继续执行:
通过逐步分析跟绘图可以知道红色部分会有环产生。
JDK7对旧table
数据重定位到新table
的函数transfer
如下,其中重点关注部分以标出。
Entry<K,V> next = e.next
就被挂起了,而线程2正常执行完毕,结果图如下: