2014-02-25 107 views
-2

這可能是一個愚蠢的問題,但我想知道信號量如何在Java中工作。我已經閱讀了許多關於它的文章(也在stackoverflow上),但無法得到它的想法。簡單使用信號燈

預定義的類Semaphore沒有任何方法嗎?是否像我們必須聲明它的對象並編寫我們自己的同步方法?

謝謝。

+2

了Java 5+實現你沒讀'Semaphore'的Javadoc教程和說明?這一切都清楚地解釋。 – chrylis

+2

@chrylis Javadoc和其他程序員向你解釋的不一樣。爲什麼他不能問一個編程網站關於編程? – michaelsnowden

+0

@doctordoder問一個合理的問題是好的。 「這個班級沒有任何方法」是通過參考文檔立即回答的小事實問題。 – chrylis

回答

0

「信號量是一個線程同步構造,既可以用於在線程之間發送信號,以避免錯過信號,或守衛關鍵部分,就像您用鎖」 - Source

快速執行力度會是

public class Semaphore { 
private boolean signal = false; 

public synchronized void take() { 
    this.signal = true; 
    this.notify(); 
} 

public synchronized void release() throws InterruptedException{ 
    while(!this.signal) wait(); 
     this.signal = false; 
} 

} 

一種在java.util.concurrenthere.