编写一个多线程程序实现如下功能,线程A和线程B分别在屏幕上显示信息“~~~start”后,调试wait等待,线程C开始后调用sleep休眠一段时间,然后调用notifyAll,使用线程A和线程B继续运行。线程A和线程B恢复运行后输出信息“~~~end”后结束,线程C在判断线程B和线程A 的结束后自己也结束运行。
自己做了下,情况不理想。愿看看高手们的答案!谢谢了~

解决方案 »

  1.   

    public class ThreadDemo {
    public static void main(String[] args) throws Exception {
    Thread1 a = new Thread1("a");
    Thread1 b = new Thread1("b");
    a.start();
    b.start();
    Thread.currentThread().sleep(5000);
    synchronized (ThreadDemo.class) {
    ThreadDemo.class.notifyAll();
    }
    Thread.currentThread().sleep(5000);
    }
    }class Thread1 extends Thread {
    private String name; public Thread1(String name) {
    super();
    this.name = name;
    } public void run() {
    System.out.println(name+" start...");
    synchronized (ThreadDemo.class) {
    try {
    ThreadDemo.class.wait();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    System.out.println(name+" end...");
    }
    }