세마포어를 사용하여 동기화 스레드를 만들고 있습니다. 이제는 일부 고객 스레드가 floor_clerk 스레드의 세마포를 사용하여 대기열에 도착할 때까지 기다려야합니다. 이전에 while 루프를 사용하여 이전에 작업을 수행했습니다. 또한 고객 스레드는 세마포어를 사용하여 floor_clerk도 도움을받을 때까지 기다려야합니다. 나는 이전에 깊은 수면을 사용하고 있었다. 모든 대기는 P (semaphores) (획득)을 사용하여 구현되어야합니다. 이는 대기를 수행하는 방법입니다. 이것은 다음과 같은 작업입니다. 고객이 도착하기 위해 층원이 대기합니다 (세마포어 사용). 그런 다음 필요한 정보를 제공합니다. 그러나 층원은 한 번에 한 고객을 도울 수 있습니다. 그러므로 고객은 도움이되는 점원을 기다려야합니다 (세마포어 사용). 대기에 대한Busy Waiting using semaphore
내 이전 Floor_clerk 코드는 다음과 같습니다
while (done != Main.csize) {
//wait while their is no customer in queue
while (queue.isEmpty() && done != Main.csize) {
}
//while their is a customer in queue assist customers
while (queue.size() != 0 && done != Main.csize) {
//some stuff to do
}
}
나를 여기 세마포어를 구현 도와주세요.
제발 도와주세요 ?? –