Java 锁定 - 解锁

Java Lock - Unlock

   java.util.concurrent.locks.ReentrantLock;                             

   Public boolean ABCD(final AbcModel abcModel) {
    final Lock lock = (Lock)this.xyz.get((Object)abcModel);
    lock.lock();
    try {
        return super.ABCD(abcModel);
    }
    finally {
        lock.unlock();
    }
}

此方法是否使线程和资源保持锁定状态?

Does this method make threads and resources remain lock?

没有。锁将在 finally 块中解锁(释放)。这将在 super.ABCD(abcModel) 调用完成后发生,并且 返回该调用的结果之前。

这直接遵循 finally 的指定行为;例如请参阅 Java Oracle 教程中的 JLS 14.20.2 or Exceptions > The finally block,其中指出:

"The runtime system always executes the statements within the finally block regardless of what happens within the try block."


...虽然它提到 JVM 退出是 "always" 前面几句话的例外。