这是我编写的代码,用于测试wait()
and的工作notify()
。现在我有一堆疑问。
class A extends Thread {
public void run() {
try {
wait();
for (int i = 1; i <= 5; i++) {
System.out.println(i);
sleep(500);
}
} catch (Exception e) {
}
System.out.println("End Of Thread");
}
}
class ThreadWaitNotify {
public static void main(String args[]) {
try {
A t = new A();
t.start();
t.wait();
t.notify();
t.join();
System.out.println("End Of Main");
} catch (Exception e) {
}
}
}
我的问题是:
- 当我在 main 中写入
t.wait()
时,main 不会进一步执行,并且我无法进一步恢复它。怎么做? - 其次,我也写
wait()
在线程中,因为它只打印“线程结束”,而不是循环?即使我notify()
来自主要与否... - 现在,如果我在 main 中写入
notify()
,它不会完成执行。在评论该行时,它完成执行并打印“End Of Main”。