【发布时间】:2012-06-03 12:56:17
【问题描述】:
我需要一些有关死锁的帮助。我只是不明白为什么我的代码在这里死锁。
我尝试了不同的场景。
但是我仍然找不到问题的原因和位置。通常它应该工作
而且我没有找到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();
}
}
}
【问题讨论】:
-
好吧,鉴于你还没有说这门课的目的是什么,这个问题很难回答……
-
为什么下面的指定类描述了一个典型的死锁案例?给出一个场景来说明这种默认设置。
-
这就是问题 ;) 我很难理解
-
是作业吗?如果是这样,请将其标记为作业。此外,如果有一些线程在做事,可能会出现死锁。你的线程对这个类做了什么?
-
是的,这是一个家庭作业,给定的陈述是我在不知道线程在做什么之前解释的,我只知道必须有 thread1 T1,thread2 T2,thread3 T3 ... 等等上
标签: java multithreading locking