#define BUFFER_SIZE 10
typedef struct
{
something;
}item;
item buffer[BUFFER_SIZE];
int in=0;
int out=0;
/*-----------------------------------
in指向缓冲区下一个空位
out指向缓冲区下一个非空位
缓冲区为空的条件:
in==out
缓冲区为满的条件:
(in+1)%BUFFER_SIZE==out
-----------------------------------*/
//生产者进程
while(1)
{
while((in+1)%BUFFER_SIZE==out)
{
do nothing;
}
buffer[in]=nextProduced;
in=(in+1)%BUFFER_SIZE;
}
//消费者进程
while(1)
{
while(in==out)
{
do nothing;
}
nextConsumed=buffer[out];
out=(out+1)%BUFFER_SIZE;
}
生产者进程和消费者进程共享内存解决方法---循环数组
最新推荐文章于 2021-01-21 21:21:44 发布