您的位置:首页 > 其它

生产者消费者问题

2017-01-31 21:34 106 查看
void producer()
{
message pmsg;
while(true)
{
receive(mayproduce,pmsg)
pmsg=produce();
send(mayconsume,pmsg);
}

void consume()
{
massage cmsg;
while(true);
{
receive(mayconsume,pmsg);
consume(cmsg);
send(mayproduce,null);
}

void main()
{

create_mailbox(mayconsume);
create_mailbox(mayproduce);

为了提供对互斥的支持,必须满足以下要求:
对一个资源来说,同一时刻只允许一个进程在临界区中
一个在非临界区停止的进程必须不干涉其它进程
无死锁和饥饿
当没有进程在临界区中时,任何需要进入临界区的进程必须能够立即进入
对相关进程的速度和处理器的数目没有任何要求和限制
一个进程驻留在临界区中的时间必须是有限的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息