在下面如果異常發生在syncMethod2()那麼我該如何解鎖鎖對象?如何在解鎖之前發生異常時解鎖ReentrantLock對象
public class ReEntrantLock {
ReentrantLock lock = new ReentrantLock();
void syncMethod1() {
lock.lock();
syncMethod2(); // throw new NullPointerException();
lock.unlock();
}
}
順便說一句:我建議你選擇你的測試類不同的名稱,如類似的名稱(或者更糟:相同的名字),你正在處理就會變得更加複雜和產生意想不到的效果的類。將「測試」附加到名稱通常足以使其更安全。 –