關於假如有Thread1、Thread2、Thread3、Thread4四條線程分別統計C、D、E、F四個盤的大小,所有線程都統計完畢交給Thread5線程去做彙總,應當如何實現?

第一種方法:
直接用join把線程5加入進去即可

public static void main(String[] args) throws InterruptedException
    {
        Thread t1 = new Thread(new Worker("thread-1"));
        Thread t2 = new Thread(new Worker("thread-2"));
        Thread t3 = new Thread(new Worker("thread-3"));
        Thread t4 = new Thread(new Worker("thread-4"));
        Thread t5 = new Thread(new Worker("thread-5"));

        t1.start();t2.start();t3.start();t4.start();
        t1.join();t2.join();t3.join();t4.join();

        t5.start();
        t5.join();
    }

第二種方法:
用Java.util.concurrent下的方法解決
用CountDownLatch : 一個線程(或者多個), 等待另外N個線程完成某個事情之後才能執行
CountDownLatch 是計數器, 線程完成一個就記一個, 就像 報數一樣, 只不過是遞減的.
盜用別人的一個例子:

發佈了70 篇原創文章 · 獲贊 20 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章