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 を引き起こしています。これが起こっている理由はわかりません。
誰かが問題がどこにあるか教えてもらえますか?