세마포어를 사용하여 해결할 때 생산자 - 소비자 문제를 누구에게 설명 할 수 있습니까? 좀 더 구체적으로 말하면, 생산자 코드와 소비자 모두에서 부침의 순서가 바뀌면 어떻게되는지 이해하는 데 어려움을 겪고 있습니다.생산자 - 소비자 및 작동 방식
semaphore mutex = 1;
semaphore full = 0;
semaphore empty = N;
void producer (void){
{
while(true)
{
int item = produce_item();
down(&empty);
down(&mutex);
insert_item(item);
up(&mutex);
up(&full);
}
}
void consumer (void){
{
while(true)
{
down(&full);
down(&mutex);
int item = remove_item(item);
up(&mutex);
up(&empty);
consume_item(item);
}
}
나는 다소 이야기하는 코드입니다.