我想迁移一个 Java 函数
protected static final Lock LOCK = new ReentrantLock();
public double calculate(...){
try {
LOCK.tryLock(20, TimeUnit.SECONDS);
...
}finally{
LOCK.unlock()
}
}
Scala中的相同功能:
protected final def LOCK = new ReentrantLock
def calculate(...): double = {
try{
LOCK.tryLock(20, TimeUnit.Seconds)
...
}finally{
LOCK.unlock()
}
}
LOCK.unlock()
总是导致 IllegalMonitorStateException 。我看不出发生这种情况的任何原因。
谁能告诉我问题出在哪里?