【发布时间】:2015-03-08 17:17:38
【问题描述】:
我已经看到很多 wait 和 notify 的例子,但我仍然有问题。
public class Main(){
public static void main(String args[]) throws Exception {
MyThread s = new MyThread();
s.start();
}
}
class MyThread extends Thread {
public void run() {
k();
}
public synchronized void k() {
System.out.println("before wait");
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("do something after wait");
}
public synchronized void m() {
for (int i=0;i<6;i++)
System.out.println(i);
notify();
}
}
运行程序时我得到的唯一输出是:"before wait"。
【问题讨论】:
-
您面临的问题是什么?有什么例外吗?
-
不,输出只有:“等待前”
-
我想知道为什么人们给我的问题减分,而不回答它!
-
您是否在代码中的任何位置调用
MyThread.m()? -
您在问题中遗漏了非常重要的信息,这就是原因。您应该清楚地说明您的问题是什么,而不仅仅是 something 是错误的。
标签: java multithreading