1. 程式人生 > >java執行緒同步輔助類的使用CountDownLatch

java執行緒同步輔助類的使用CountDownLatch

有時候我們開發的時候會使用到多執行緒,那問題又來了,多執行緒是非同步的,有時候我們的邏輯又需要同步的時候,我們該怎麼辦呢,其實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("謝謝你等我----》");
	}
}