哲学家进餐问题

哲学家进餐问题

ID:22527905

大小:70.72 KB

页数:5页

时间:2018-10-30

哲学家进餐问题_第1页
哲学家进餐问题_第2页
哲学家进餐问题_第3页
哲学家进餐问题_第4页
哲学家进餐问题_第5页
资源描述:

《哲学家进餐问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++此代码随机产生一个线程进行了哲学家进餐问题的描述在控制台下运行,输入A是无死锁的哲学家进餐,输入B是有死锁的哲学家进餐。+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++aut

2、hor:徐文锋From:hfutIDCard:20112529+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/#include#include#include#defineN5usingnamespacestd;DWORDWINAPIDe$cribeProc(LPVOIDIpParameter);DWORDWINAPIChoicelProc(LPVOIDIpParameter);D

3、WORDWINAPIChoice2Froc(LPVOIDIpParameter);DWORDWINAPIPhilosopherProcl(LPVOIDIpParameter);DWORDWINAPIPhilosopherProc2(LPVOIDIpParameter);HANDLEhMutex;HANDLEChopStick[N];HANDLEPhilosopherLNJ;inti;//threaddata//threaddata//threaddata//threaddata//threaddataintmain()ch

4、arch;HANDLEde$Thread,choice[2];desThread=CreateThread(NULL,0,DescribeProc,NULL,0,NULL);CloseHandle(desThread);for(i=0;i

5、:M«endl;C0Ut«”按A选择无死锁,按B选择产生死锁,按N选择返出”《endl;cin»ch;if(W==ch){choicelOJ=CreateThread(NULL,0,Choice1Proc,NULL,0,NULL);CloseHandle(choice[0]);ch=V;}ifCB^ch){choice[1]=CreateThread(NULL,0,Choice2Proc,NULL,0,NULL);CloseHandle(choice[11);ch='Q*;}if(’N’==ch)return0;Sleep

6、(30000);}return0;DWORDWINAPIDescribeProc(LPVOIDlpParameter//threaddata)(cout«,f哲学家就餐问题可以这样表述^«endhcout<<"假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一cout<<"吃饭,或者思考。吃东两的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗";cout<<”意大利而,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利而,所以假设哲学家必”;cout<<”须用两只餐叉吃东两。他们只能使用自己左右

7、手边的那两只餐叉。哲学家就餐W题有时也用米饭和”;cout<<”筷子而不是意大利而和餐叉来描述,因为很明显,吃米饭必须用两根筷子。"«endl;cout<<"哲学家从来不交谈,这就很危险,可能产生死锁,每个哲学家都拿着左手的餐叉,永远都在等右边";cout<<”的餐叉(或者相反)。即使没有死锁,也有可能发生资源耗尽。例如,假设规定当哲学家等待另一I';COLlt<<”只餐叉超过五分钟后就放下自己手里的那一只餐叉,并且再等五分钟后进行下一次尝试。这个策略I*;cout<<”消除了死锁(系统总会进入到下一个状态),但仍然有可能

8、发生“活锁”。如果五位哲学家在完全”;cout<<”相同的时刻进入餐厅,并同时拿起左边的餐叉,那么这些竹学家就会等待五分钟,同时放下手中的”;cout<<"餐叉,再等五分钟,又同吋拿起这些餐叉。H«endl;cout«*J在实际的计算机W题巾,缺乏餐叉可以类比为缺乏共享资源。一种常用的计算机技术是资源加

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。