4)环形链接出现。 e.next = newTable[i] 导致 key(3).next 指向了 key(7) 注意:此时的key(7).next 已经指向了key(3), 环形链表就这样出现了。 于是,当我们的线程一调用到,HashTable.get(11)时,悲剧就出现了——Infinite Loop。 其它有人把这个问题报给了Sun,不过Sun不认为这个是一个问题。因为HashMap本来就不支持并发。要并发就用ConcurrentHashmap http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6423457 我在这里把这个事情记录下来,只是为了让大家了解并体会一下并发环境下的危险。 |