1、为Thread撰写两个子类,其中一个的run()在启动后取得第二个Thread object reference,然后调用wait()。另一个子类的run()在过了数秒之后调用notifyAll(),唤醒第一个线程,使第一个线程可以印出消息。
MasterThread类
2、SlaverThread 类
MasterThread类
public class MasterThread extends Thread {
public static void main(String[] args) {
MasterThread mt = new MasterThread();
mt.start();
}
public void run() {
SlaverThread st = new SlaverThread(this);
st.start();
synchronized (this) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("MasterThread say hello!");
}
}
2、SlaverThread 类
public class SlaverThread extends Thread {
private Thread mt = null;
public SlaverThread(Thread mt) {
this.mt = mt;
}
public void run() {
try {
System.out.println("SlaverThread started..");
sleep(3000);
System.out.println("3 second past");
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("notify MasterThread");
synchronized (mt) {
mt.notifyAll();
}
}
}