0
接下來是一個簡單的信號量實現。如何解釋信號量處理操作?
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;
}
}
這是真的,是通過調用取()旗語模仿信號採集和喚醒隨機選擇的線程(如果它確實存在),並通過調用release(),如果沒有收購,旗語力電流信號(觸發)線程等待notify()但將信號採集設置爲false?
這是否意味着,如果我有3個線程的單個信號量,那麼我將不得不爲每個線程在線程安全的代碼部分運行take() - release()對?
用過的互斥。謝謝你的建議! – 2010-09-29 23:33:40