ConcurrentHashMap中的java lock()方法
也许这对我来说很愚蠢,但我查看了ConcurrentHashMap
的源代码,在该类中的任何地方都看不到方法lock()
的定义,但我可以看到这个方法被多次调用。在Eclipse中,当我在lock()
上说open声明时,它显示了类ReentrantLock.lock()
,所以我很困惑这是如何工作的?lock()方法调用的ReentrantLock
的对象引用在哪里
V readValueUnderLock(HashEntry<K,V> e) {
lock(); // where is this method defined in CHM ?
try {
return e.value;
} finally {
unlock();
}
}
# 1 楼答案
该代码片段位于
ConcurrentHashMap
内名为Segment
的内部类中,该类扩展了ReentrantLock