デッドロックに関して助けが必要です。ここでコードがデッドロックしている理由がわかりません。
さまざまなシナリオを試しました。
しかし、なぜ、どこに問題があるのか、まだわかりません。debuter
通常は機能するはずですが、との間のデッドロックがどこにあるのかわかりませんtermine
。
public class Interblocking {
protected object obj = object();
private boolean condition = true;
public synchronized void debuter() {
synchronized(obj) {
while (!condition) {
try {
obj.wait();
} catch (InterruptedExeption ie) {}
}
condition = false;
}
}
public synchronized void terminer() {
synchronized(obj) {
condition = true;
obj.notifyAll();
}
}
}