我遇到了notify()和wait()的问题。 我希望我的主线程能够强制其他线程等待并随时通知我。 似乎我不明白一切,因为通知不起作用。我无法访问我的NOTIFY方法。
这是我的代码:
MAIN THREAD:
public class troll {
static Runnable R0;
static Thread TH;
public static void main(String[] args) {
System.out.println("TROLOLOLL0");
watek R0 = new watek();
Thread TH = new Thread(R0);
synchronized(TH){
TH.start();
R0.NOTIFY();
}
}
}
My THREAD Class:
public class watek implements Runnable {
public watek(){
}
public void run() {
System.out.print("STOP");
this.WAIT();
System.out.print("Running again");
}
public synchronized void WAIT(){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void NOTIFY(){
notify();
}
}
答案 0 :(得分:1)
同步你的NOTIFY方法。也可以使用watek.NOTIFY()代替TH.NOTIFY()。
答案 1 :(得分:1)
你只是一场比赛。 NOTIFY
方法中对main
的调用可能发生在新线程中的wait
之前。然后就没有什么可以唤醒它了。