wait怎么用?
能否写一点简单的代码,谢谢

解决方案 »

  1.   

    no是threadA.join();//某线程堵晒直到执行完
      

  2.   

    同意楼上的,看个例子
    import java.io.*;
    public class MethodTest {
        static PrintWriter out = new PrintWriter(System.out,true);
        public static void main(String[] args) {
            FirstThread first = new FirstThread();
            SecondThread second = new SecondThread();
            first.start();
            second.start();
    //本来程序中只有主线程,现在多了两个线程
            try{
            out.println("Waiting for first thread to finish...");
            first.join();
    //join的意思就是说先让主线程等待,运行first线程,等first的run方法结束后
    //再接着运行主线程
            out.println("It's a long wait!");
            out.println("Wakong up second thread...");
            synchronized(second){
                second.notify();
            }
            out.println("Waiting for second thread to finish...");
            second.join();
    //与上面的一样,让主线程等待,运行second的run方法
            }catch(InterruptedException e){
            }
            out.println("I'm ready to finish too.");
        }}
        class FirstThread extends Thread{
            public void run(){
                try{
                    MethodTest.out.println(" First thread starts running.");
                    sleep(10000);
                    MethodTest.out.println(" First thread finishes running.");
                }catch(InterruptedException e){
                }
            }
        }
        class SecondThread extends Thread{
            public synchronized void run(){
                try{
                    MethodTest.out.println(" Second thread starts running.");
                    MethodTest.out.println(" Second thread suspends itself.");
                    wait();
                    MethodTest.out.println(" Second thread runs again and finishes.");
                }catch(InterruptedException e){
                }
            }
        }
    你可以先运行一下试试,然后再去掉两处join,比较结果