java 多线程的一道题

来源:百度知道 编辑:UC知道 时间:2024/05/29 06:12:50
我刚接触多线程 感觉还真是有点混乱 今天做习题的时候碰到这样一道题,感觉思路很乱,大家帮帮忙 帮我解决一下:
编写一个多线程程序实现如下功能:线程A和线程B分别在屏幕上显示信息“A start”“B start”后 调用wait等待;线程C开始后调用sleep休眠一段时间,然后调用notifyall,使线程A和线程B继续运行。线程A和线程B恢复运行后输出信息“A END”“B END”后结束,线程C在判断线程A线程B结束后,自己也结束运行。

文件:ThreadDemo.java
-----------------------------------------------------------
public class ThreadDemo {
public static void main(String[] args) {
Object obj = new Object();
ThreadA ta = new ThreadA(obj);
ThreadB tb = new ThreadB(obj);
ThreadC tc = new ThreadC(obj, ta, tb);
ta.start();
tb.start();
tc.start();
}
}

// 线程A
class ThreadA extends Thread {
private Object obj;
public ThreadA(Object obj) {
this.obj = obj;
}
public void run() {
System.out.println("A Start");
synchronized(obj) {
try {
obj.wait();
} catch(Exception e) {
e.printStackTrace();
}
}
System.out.println("A End");
}
}

// 线程B
class ThreadB ext