java多執行緒之CountDownLatch

2021-08-22 18:00:12 字數 828 閱讀 7662

countdownlatch是乙個同步工具類,用來協調多個執行緒之 間的同步。其能夠使 乙個執行緒在等待另外一些執行緒完成各自工作之後,再繼續執行。使用乙個計數器進行實現。計數器初始值為執行緒的數量。當每乙個執行緒完成自己任務後,計數器的值就會減一。當計數器的值為0時,表示所有的執行緒都已經完成了任務,然後 在countdownlatch上等待的執行緒就可以恢復執行任務。

缺點:不可重用

使用場景:一等多

示例**:

countdownlatchtest類:

public class countdownlatchtest  catch (interruptedexception e) 

}}).start();

new thread(new runnable() catch (interruptedexception e)

}}).start();

system.out.println(thread.currentthread().getname() + "等待喝水...");

//等待其它執行緒完成任務

countdownlatch.await();

system.out.println("喝水完成");

}}

main類:

public class main
測試結果:

從測試結果可以看出,main執行緒的喝水等待紙杯完成和熱水任務完成才執行。countdownlatch一等多場景可見。

JAVA多執行緒之 執行緒池

執行緒池顧名思義,就是乙個放置執行緒的池子。就跟資料庫連線池差不多。執行緒池通過對併發執行緒的控制,能有效的節省系統資源的浪費,提高系統的效能。學習執行緒池,先了解一下執行緒池的乙個基本結構 executor是乙個介面,其中只有乙個方法,就是execute方法。所以executor實際就是乙個執行緒...

Java多執行緒之執行緒安全

當多個執行緒訪問某乙個類 物件或方法時 這個類始終都能表現出正確的行為,那麼這個類 物件或方法 就是執行緒安全的。public class mythread extends thread public static void main string args 結果如下 t1正在執行 4 t1正在執行...

java 多執行緒 之 Excutor

excutor介面 提供了一種將任務提交和任務執行機制相分離的方法 excutorservice介面 提供了excutor的管理介面,以及可為跟蹤乙個或多個非同步任務狀態而生成future的方法 scheduledexcutorservice介面 提供了可以安排在給定的延遲後執行或定時執行的命令 方...