はありがとうございこれらのJavaの状況
の1-がデッドロックしますか?
synchronized(obj) {
obj.syncMethod(); // the method signature: public synchronized void syncMethod() {...}
}
2 -
synchronized(obj) {
if (condition)
throw new Exception(); // deadlock because obj lock is not released?
// do other stuff
}
に起こるデッドロックします。
同期メソッドの経験はありませんが、例外がスローされ、メソッドの実行が異常終了するだけでデッドロックが発生する可能性は愚かなようです。その場合、例外をキャッチしてオブジェクトのロックを解除し、新しい例外をスローすることができます。 – MarioDS
コードをテストして調べてみませんか? –