环球短讯!哲学家就餐问题解决方案_哲学家就餐问题
1、两个地方应该是pv操作,pv都是操作元语,不可中断p操作是将信号量-1
(资料图片仅供参考)
1、两个地方应该是pv操作,pv都是操作元语,不可中断p操作是将信号量-1v操作是将信号量+1pv一定要配对使用哲学家进餐可以通过信号量机制解决。
2、避免死锁注释如下:Void test(int i) //测试哲学家i是否满足eating条件{ if(state[i]==HUNGRY) //状态为hungry且左右均未在eating状态,即筷子空闲 && (state[(i-1)%5]!=EATING) &&(state[(i+1)%5]!=EATING) { state[i]=EATING; //设置哲学家i的状态标志为eating V(&s[i]);(不懂,什么意思) //s[i]初始化为0。
3、表示能否eating的信号量,V之后s[i]=1,可以 } //通过P操作后进入eating。
4、否则在P(s[i])处阻塞}state[i]=THINKING; //初始化状态位s[i]=0; //初始化s[i] 信号量Void philosopher(int i){ while (true) { 思考; P(mutex);(还有这个地方也不太懂) //对mutex进行P操作,即加锁,防止过 //多进程同时执行造成死锁 state[i]=HUNGRY; //设置i状态 test (i); //测试是否可以进eating。
5、如可以,设置 //相应标志位和信号量 V(mutex); //释放信号量,其它进程可执行P(mutex) P(s[i]); //测试是否可以eating //以下为哲学家i的eating过程 拿左筷子; 拿右筷子; 进食; 放右筷子; 放左筷子;} P(mutex); //对mutex加锁。
6、防止多个进程同时对state[i]操作 state[i]=THINKING; //设置i状态 test([i-1]%5); //为左边和右边测试并设置s状态 test([i+1]%5); V(mutex); //释放信号量}。
本文就为大家分享到这里,希望小伙伴们会喜欢。
关键词:
1、两个地方应该是pv操作,pv都是操作元语,不可中断p操作是将信号量-1
6月8日,翠微股份(603123)融资买入304 05万元,融资偿还208 38万元,
8日,记者从中国科学技术大学获悉,该校由潘建伟、陆朝阳、刘乃乐等组
截至2023年6月8日收盘,禾迈股份(688032)报收于510 04元,上涨1 5%,换
荣盛发展(SZ002146,收盘价:1 17元)6月8日晚间发布公告称,公司于20
晚睡早起,刻苦攻读,只为今朝;修身养性,博览群书,只为此时;奋发有
来为大家解答以上的问题。我喜欢你藏头诗,求藏头诗幸福安康这个很多人
新劲刚:股东拟减持不超过1 69%公司股份
1、教版)2010—2011年小学数学六年级上册期末考试卷及答案小学六年级
近几年来,动力活塞组件系统供应商中原内配在发展主业的同时,也把眼光
来为大家解答以上的问题。hdt打不开的原因,hdt打不开这个很多人还不知
决赛期间,同步举办线上比武,包含焊接设备操作工—机器人、建筑信息模
东箭科技(SZ300978,收盘价:11 99元)发布公告称,2023年6月7日下午1
相信大家对45度弯头翻弯求中间短管长度,45弯怎么算中间短管的问题都很
中研股份6月15日上交所首发上会拟募资4 55亿元
【广东空调卖爆了空调加工车间24小时不停歇】随着高温袭来,空调市场也
日渐萎缩的中高级车市场需要寻找新的突破口和增长点,设计美学、舒适科
6月10日(周六)15:00,韩东将来到单向空间·杭州乐堤港店,和诗人、小
【广西车企为欧洲客户“量身定制”交付首批新能源物流车】8日,柳州五
作为职业交易员,王志新认为,找到交易逻辑并去获利就是目标。