jdk1.7的transfer()是用头插法,让新的链表和原来的是倒着的,所以这时候假如有两个线程,第一个线程只执行resize()中的transfer()到while循环中Entry next = e.next这一步挂起了 ; 然后就第二个线程又开始执行扩容,第二个线程执行成功,其实这时候已经完成了扩容的任务,且链表里的顺序 已经倒置了(因为采用的头插法。原链表的头先插入,尾部后插入),这时候第一个线程唤醒继续执行,也是类似线程二的方式,while循环,链表反转。(但是线程二已经线程一将原尾部的引用修改了,指向头部)这时候线程一再反转就把新链表的尾巴又指向头了,然后就造成了环。(链表中只有两个元素扩容。)