哲学家就餐是一个经典的Java多线程编程的实例,这是图形版。涉及到线   哲学家就餐:有五个哲学家绕着圆桌坐,每个哲学家面前有一碗面,两人之间有一支筷子,这样每个哲学家左右各有一支筷子。哲学家有2个状态,思考或者拿起筷子吃饭。如 果哲学家拿到一只筷子,不能吃饭,直到拿到2只才能吃饭,并且一次只能拿起身边的一支筷子。一旦拿起便不能放下直到把饭吃完,此时才把这双筷子放回原处。如果,很不幸地 ,每个哲学家拿起他或她左边的筷子,那么就没有人可以吃到饭了。这就会造成了死锁……这是我们坚决杜绝的,正如操作系统的死锁问题。
1
哲学家进餐 一,课程设计目的 掌握基本的同步与互斥算法,掌握进展并发执行的原理,及其所引起的同步,互斥问题的方法。 二,课程设计内容 自己编写的信号量和wait,signal操作的模拟程序,然后用其解决不死锁的哲学家问题或读者-写者问题。 三,要求及提示 本译文必须单人完成。 解决不死锁的哲学家问题,要求把哲学家们的活动过程用文字或图形可视化形式表示出来。 提示:首先设置一个“ PCB”插入或串联,其中一个分段表示“分开原因兼并标志”,本实验中,该数组有5个元素表示5个哲学家即可。它们随机提出申请以及进行“思考” ”和“吃”的行为。再设一个“筷子”数组。还需要设置一些数据结构以及需要某些分段自己考虑。 运行截图 发生死锁 不会发生死锁
2021-05-28 20:05:54 484KB operating-system OperatingsystemJava
1
哲学家就餐问题.docx
2021-05-26 09:00:45 12KB 操作系统
1
基于ucos的哲学家就餐问题源代码,程序,已经运行,点击运行程序即可运行。
2021-04-28 21:59:31 470KB ucos,哲学家就餐,嵌入式
1
设有五个哲学家,共用一张放有五把椅子的餐桌,每人坐在一把椅子上,桌子上有五个碗和五只筷子,每人两边各放一只筷子。哲学家们是交替思考和进餐,饥饿时便试图取其左右最靠近他的筷子。条件: (1) 只有拿到两只筷子时,哲学家才能吃饭。 (2) 如果筷子已被别人拿走,则必须等别人吃完之后才能拿到筷子。 (3) 任意一个哲学家在自己未拿到两只筷子吃饭前,不会放下手中拿到的筷子。
2021-04-13 14:03:54 48KB 课程设计 哲学家 问题
1
用JAVA实现哲学家就餐问题,本源码中采用的是奇数号哲学家先拿左手后拿右手,而偶数号哲学家采用先拿右手后拿左手的策略来预防死锁。
2020-05-16 20:48:53 5KB JAVA 哲学家就餐
1
哲学家进餐问题是一个多线程运用的经典例子,涉及到线程同步/互斥,临界区访问问题以及一个避免死锁的解决方法。。。。
2020-05-16 20:46:16 6KB java
1
文档为实验报告,运行环境是ubantu,文档包含哲学家就餐问题的代码,使用三种方法解决哲学家就餐问题,顺序资源法,加房间法和P_sim法,希望对大家有帮助
2020-05-05 16:43:42 191KB P_sim
1
操作系统原理实验报告+源代码,哲学家就餐问题有界面,且能在死锁与不死锁情况下运行,生产者与消费者问题也有界面···
1