JDK7.0的ConcurrentHashMap
在map的remove方法中调用了Segment的remove方法。
这个方法里首先会尝试tryLock,如果失败,调用scanAndLock。
在scanAndLock里会在尝试tryLock一定次数以后调用lock方法,直到获取锁后break跳出scanAndLock。
问题:
scanAndLock方法中的这部分:
if (retries < 0) {
if (e == null || key.equals(e.key))
retries = 0;
else
e = e.next;
}
会遍历HashEntry链表,它的作用是什么?