1. 程式人生 > >有三個執行緒T1 T2 T3,如何保證他們按順序執行

有三個執行緒T1 T2 T3,如何保證他們按順序執行

T3先執行,在T3的run中,呼叫t2.join,讓t2執行完成後再執行t3

在T2的run中,呼叫t1.join,讓t1執行完成後再讓T2執行

public class JoinTest2 {

    // 1.現在有T1、T2、T3三個執行緒,你怎樣保證T2在T1執行完後執行,T3在T2執行完後執行


    public static void main(String[] args) {

        final Thread t1 = new Thread(new Runnable() {

            @Override
            public void run() {
                System.out.println("t1");
            }
        });
        final Thread t2 = new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    //引用t1執行緒,等待t1執行緒執行完
                    t1.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("t2");
            }
        });
        Thread t3 = new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    //引用t2執行緒,等待t2執行緒執行完
                    t2.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("t3");
            }
        });
        t3.start();
        t2.start();
        t1.start();
    }
}