0
내가 http://tutorials.jenkov.com/java-concurrency/semaphores.html이 코드에서 왜 세마포어가 아래쪽으로 카운트되지 않습니까?
에서이 튜토리얼을 읽고 있어요 그리고 그것은 세마포어 구현을 세고 것은 :
public class CountingSemaphore {
private int signals = 0;
public synchronized void take() {
this.signals++;
this.notify();
}
public synchronized void release() throws InterruptedException{
while(this.signals == 0) wait();
this.signals--;
}
}
코드는 나에게 이상한 것 때문에 내가 거기에 얼마나 많은 가용 자원 세마포어 기록을 이해하는 것과, 그래서 우리는 take()
일 때 카운트를 줄이고 release()
일 때 카운트를 증가시켜야합니다 (그리고 물론 제한이 있습니다).
카운트 다운과 카운트 다운 방식의 차이점에 대해 더 많은 정보를 얻을 수있는 사람이 있습니까? 여기
전체'take' /'release'는 거꾸로됩니다 -'release'는 기다리지 않고 알려야합니다. 그리고 그렇습니다. 세는 것도 뒤쳐져 있습니다. 저자에게 연락하는 것이 좋습니다. –