java執行緒同步輔助類的使用CountDownLatch
阿新 • • 發佈:2019-02-18
有時候我們開發的時候會使用到多執行緒,那問題又來了,多執行緒是非同步的,有時候我們的邏輯又需要同步的時候,我們該怎麼辦呢,其實java給我們提供了一個類CountDownLatch,計數上鎖。
寫得不好,多多包涵。
同步操作流程如下----
CountDownLatch執行過程如下----》
下面直接上程式碼-----》
public class s { public static void main(String[] args) throws InterruptedException { //一個任務等待的同步操作類 final CountDownLatch latch = new CountDownLatch(1); //啟動一個子執行緒 new Thread() { public void run() { for (int i = 0; i < 5; i++) { System.out.println("等我---》" + i); try { sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //任務完成,計數減一 latch.countDown(); } }.start(); //等待非同步任務完成 latch.await(); System.out.println("謝謝你等我----》"); } }