2013-09-22 13 views

回答

1

倒數鎖存器允許您等待鎖存器,直到它的當前計數減爲零。這意味着你可以讓一個線程等待,直到其他線程完成了一定數量的工作,每一個線程都會在完成任務時倒計時。

信號量允許您爲任務分配許可證。您可能只需要10個許可證,因此要求許可證的第11個任務必須等到另一個任務返回。

例如,你可以有一個只有1個可用許可證的信號量,並鎖定它。這將導致與同步方法/塊相同的行爲。一旦許可證被退回,另一個線程可以獲得它以輸入被鎖定的塊。

sem.acquire(); 

doSomeStuff(); 

sem.release(); 

如果信號量只有1許可證初始化,那麼它是一樣的:

synchronized(someLock) { 

    doSomeStuff(); 

} 
+0

,因爲我在Java中是初學者,我不能完全理解信號燈和倒計時latch.I某處讀取信號量和倒計時鎖存器是兩個不同的。我能在倒計時閂鎖中使用信號量嗎? 這裏是我需要使用的語法: 公共類CountDownLatch { 公共CountDownLatch(詮釋計數){ } 公共無效COUNTDOWN(){ } 公共無效等待(){ } public static void demo(String [] args) } – rajmohanloganathan