考虑班级
class Minute implements Runnable {
private int min;
// constructor
public void run() {
while (true) {
min++;
wait();
}
}
}
class Waker {
// Unsure
}
如何使用Waker类唤醒/恢复等待的分钟对象?
答案 0 :(得分:1)
要唤醒线程,您需要直接引用它,如下所示:
Minute min = new Minute();
min.run();
// later
min.notify();
如何将此引用纳入您的唤醒'类代码取决于你。
例如,通过构造函数:
class Waker {
Minute towake;
public Waker(Minute m) { towake = m; }
public void wakeUp { towake.notify(); }
}
原来的例子变成了:
Minute min = new Minute();
min.run();
Waker waker = new Waker(min);
// later
waker.wakeUp();
或者您可以致电' notifyAll()'正如巴蒂建议的那样,但这非常粗糙。
答案 1 :(得分:0)
创建Minute
类的对象,并在该对象上调用notifyAll()
。