有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    该代码片段位于ConcurrentHashMap内名为Segment的内部类中,该类扩展了ReentrantLock