我需要一些关于死锁的帮助。我只是不明白为什么我的代码在这里死锁。
我尝试了不同的场景。
但是我仍然找不到问题的原因和位置。通常它应该可以工作,我找不到死锁在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();
}
}
}