1. 程式人生 > >多執行緒之join()方法---(Thread提供的讓一個執行緒等待另一個執行緒完成的方法)

多執行緒之join()方法---(Thread提供的讓一個執行緒等待另一個執行緒完成的方法)

package Demo1;

/**
 * Created by Petty on 2017/4/9.
 */

public class Thread_1 extends Thread {
    //提供一個有引數的構造器,用來設定該執行緒的名字
    public Thread_1(String name){
        super(name);
    }

    //重寫run()方法,定義執行緒執行
    public void run(){
        for(int i=0;i<10;i++){
            System.out.println(getName()+" "+i);
        }
    }

    public static void main(String[] args) throws Exception{
        //啟動子執行緒
        new Thread_1("新執行緒").start();
        for(int i=0;i<10;i++){
            if(i==5){
                Thread_1 t1 = new Thread_1("被join的執行緒");
                t1.start();
                //main執行緒呼叫了t1執行緒的join()方法,main執行緒
                //必須等t1執行結束才會向下執行
                t1.join();
            }
            System.out.println(Thread.currentThread().getName());//輸出當前正在執行的程序的名字
        }
    }
}

執行結果:

main
main
main
main
main
新執行緒 0
被join的執行緒 0
新執行緒 1
被join的執行緒 1
新執行緒 2
被join的執行緒 2
新執行緒 3
被join的執行緒 3
新執行緒 4
被join的執行緒 4
新執行緒 5
被join的執行緒 5
新執行緒 6
被join的執行緒 6
新執行緒 7
被join的執行緒 7
新執行緒 8
被join的執行緒 8
新執行緒 9
被join的執行緒 9
main
main
main
main
main