May be this is silly on my part but I looked at the source code for ConcurrentHashMap and I was not able to see the definition of the method lock() anywhere in that class, but I can see this method being invoked at several occasions. In Eclipse , when I say open declaration on lock(), it shows the class ReentrantLock.lock() , so I am confused how this works ? Where is the object reference of the ReentrantLock for the lock() method invocation ?
V readValueUnderLock(HashEntry<K,V> e) {
lock(); // where is this method defined in CHM ?
try {
return e.value;
} finally {
unlock();
}
}
That code fragment is inside an inner class within
ConcurrentHashMapcalledSegment, which extendsReentrantLock