欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2021-08-26

程序员文章站 2022-07-09 22:31:54
...

哲学家进餐问题

(一些想法,不知道对错,我是刚学完,想到了和书上不一样的,感觉没什么问题就写了下来

semaphore chopstick[5]={1,1,1,1,1};   //初始化信号量
semaphore mutex=1;
Pi(){                                                //i号哲学家的进程
	while1{
		int i = 0;                //记录是否拿起筷子
		p(mutex)                                
		if(chopstick[i] == 1 && chopstick[(i+1)%5 ==1){            
			P(chopstick[i]);               //拿筷子的条件
			P(chopstick[(i+1)%5]);
			i++;
		}
		V(mutex)
		if(i == 1){      //吃并且返回筷子                                            
		eat;
		i=0;
		V(chopstick[i]);
		V(chopstick[(i+1)%5]);
		}
	}
相关标签: 笔记 后端

推荐阅读