Java의 모니터 개념을 사용하여 세마포를 구현하려고합니다.모니터 개념을 사용하여 세마포를 구현하십시오.
class MyMonitor
{
int counter = 0;
//init
public MyMonitor(int init)
{
counter = init;
}
//Signal
public synchronized void S()
{
counter++;
notify();
}
//Wait
public synchronized void W()
{
if(counter == 0)
{
try
{
wait();
}
catch(InterruptedException e) { }
}
counter--;
}
}
이 인 경우 : (사용 방법, 신호를 init를 기다립니다) (문제가 무엇인가하지 않은 경우)
가 이 클래스가 맞다면 누군가가 나에게 말해 줄 수약한 계수 세마포어를 구현 즉 자바 클래스 올바른, 누군가가 내게 수업을 시험 할 수있는 방법에 대한 아이디어를 줄 수 있겠습니까?
if(counter == 0)
{
try
{
wait();
}
catch(InterruptedException e) { }
}
counter--;
스레드가 기다리는 동안, 그것은 단순히 if
문을 종료 0 아래의 카운터를 감소 다음 세마포어 시스템이 끔찍하게 진행됩니다 중단됩니다 경우
다른 r eason은 '거짓'을 사용합니다. – zch
@zch : 좋은 지적입니다. – Tudor