join方法應用之一——按順序輸出三個執行緒

wjf_jone發表於2020-10-08

哈嘍,小夥伴們,大家好。今天給大家分享的是join方法的應用。因為join方法比較重要,所以就實際應用一下。當然,該程式主要是為了講解join的作用。所以比較簡單。好了 ,廢話不多說,直奔主題。


題目

按順序執行三個執行緒。比如A執行緒和B執行緒和C執行緒,這三個執行緒執行之後,輸出ABC。

分析

我們首先要清楚join這個方法,不清楚的,可以去我的另外一篇部落格檢視。Thread重要的API—下—join方法,他的作用是join 某個執行緒 A,會使當前執行緒 B 進入等待,直到執行緒 A 結束生命週期,或者到達給定的時間,那麼在此期間 B 執行緒是處於 Blocked 的。我們可以看出,join的作用就是讓一個執行緒先執行,然後在執行其他執行緒。所以我們可以線上程的執行單元(run方法)裡面,去呼叫其他執行緒的join方法,這樣該執行緒就會等待其他執行緒執行完畢再執行。我們的目的就達到了。程式碼如下:

public static void main(String[] args) throws InterruptedException {
        Thread t1=new Thread(() ->{
            System.out.println(1);
            }
        );
        Thread t2=new Thread(() ->{
            try {
                t1.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(2);
        }
        );
        Thread t3=new Thread(() ->{
            try {
                t2.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(3);
        }
        );
        t2.start();
        t3.start();
        t1.start();
    }

總結:

該程式碼章節主要是為了讓大家清楚join方法的含義,這個例子比較通俗易懂。也很簡單,下一章節,會深入一點去講解。好了,本節到此結束,謝謝大家的喜歡。

相關文章