int in, out;
item buffer[n];
semaphore mutex =1, empty = n, full =0;voidproducer()//生产者{while(true){wait(empty);//判断是否可以往里放wait(mutex);//互斥信号量,进入缓冲区其它不能进入
buffer[in]= nextp;//往里写
in =(in +1)% n;signal(mutex);signal(full);}}voidconsumer()//消费者{while(true){wait(full);//判断是否可以取wait(mutex);//互斥信号量,进入缓冲区其它不能进入
nextc = buffer[out];//取
out =(out +1)% n;signal(mutex);signal(empty);}}
生产者消费者问题int in, out;item buffer[n];semaphore mutex = 1, empty = n, full = 0;void producer()//生产者{ while(true) { wait(empty);//判断是否可以往里放 wait(mutex);//互斥信号量,进入缓冲区其它不能进入 buffer[in] = nextp;//往里写 in = (in + 1) % n; signal(mutex); signal