问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

哲学家进餐问题的管程机制

发布网友 发布时间:2022-04-21 23:24

我来回答

1个回答

热心网友 时间:2023-07-26 14:11

在用信号量机制解决同步问题时,往往比较繁琐,采用面向对象的思想,将资源及资源的共享操作封装起来,用管程来管理,实现哲学家进餐问题,使用起来更加方便。
算法实现描述如下:
1)建立管程
monitor PC
{
semaphore chopstick[5]=11,1,1,1,1);
X:condition;/*定义条件变量*/
void Get:(int T) /*定义取筷子过程*/
{
Tf chopstick[I]=1 and chopstick[(i+1)%5]=1 then
get the chopstick[I]and chopstick[(i+1)%5];
else X.wait;/*左右筷子没有,则等待*/
)
void Put(int i) /*定义放下筷子过程*/
{
put:the chopstick[I]and chopstick
(i+1)%5];
Tf X.quene then X.signal;/*唤醒等待筷子的哲学家*/
)
}
2)使用管程
第1个哲学家的活动:
void philosopher(int I)
{
while(true)
{
思考;
get:(I);
进餐;
put(I);
}  }

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
QQ空间代码不用了。怎么回原? 怎样才能把我的QQ空间变回原样啊~~~(我乱用代码的后果~555555~~) 小的的意思是什么 ...中,硫元素的化合价最高的是( )A.SO2B.H2SO4C.H2SD.Na2SO ...中硫元素化合价相同( )A.S、SO2B.SO2、H2SO4C.H2S、H2SO4D.SO3... 下列硫的单质和化合物中,硫元素的化合价是+4的是( )A.SB.SO2C.H2SD... 下列化合物中,硫元素的化合价为+4价的是( )A.H2SB.SO2C.SO3D.H2SO 下列化合物中,硫元素的化合价为+4价的是( )A.CaSO4B.H2SC.Na2SO3D... ...元素的化合价为+4价的是( )A.SO2B.H2SC.SO3D.H2SO 梦幻西游:三界功绩有什么用?原来有这么多用处 经常洗头头发长得快吗 经常洗头头发长得快吗 如何利用管程来解决哲学家进餐问题? 经常洗头头发长的快还是少洗长的快? 听闻经常洗头会使头发长得快,这种说法是真的吗? 哲学家就餐问题PV算法 洗头的次数越多头发是不是长的越快? 洗头的次数越多头发是不是长的越快? 有关哲学家就餐程序的问题 每天洗头发头发会长得快吗 每天洗头发头发会长得快吗 经典ipc问题哲学家就餐问题进程哪些同步哪些互斥 哲学家进餐问题如何区分筷子 哲学家就餐问题的算法实现 哲学家就餐公式 解决哲学家用餐问题有多少种方法 哲学家进餐问题的算法与实现 哲学家就餐问题 (急,急,急!) 哲学家进餐问题(在计算机操作系统方面的相关编程) 哲学家就餐问题 勤洗头发是不是长得快点 哲学家就餐问题论文致谢词 头发经常洗长得快吗 哲学家就餐问题解法的疑问 经常洗头能让头发长的更快吗 哲学家进餐问题实现的截图 谢谢 天天洗头,头发会长的快吗? 头发是洗头长得快一点还是不洗头长得快一点 怎样才能在美团上卖东西需要多少钱 哲学家进餐时如何区分筷子 头发天天洗会不会长得快? 头发天天洗会不会长得快? 洗头头发会不会长的快 洗头头发会不会长的快 如果每天洗头,头发会长得快吗? 如果每天洗头,头发会长得快吗? 怎样把自己的东西放进美团里面去卖 怎样洗头头发长的快 怎样洗头头发长的快 多洗头发会长得快吗