文件名称:Philosophers-Multi-Threading-Problem:哲学家问题的解决方案
文件大小:4KB
文件格式:ZIP
更新时间:2024-07-04 00:12:10
Java
哲学家多线程问题 五位哲学家围坐在一张圆桌旁。 每个哲学家都有一盘意大利面。 意大利面太滑了,哲学家需要两把叉子才能吃。 每对盘子之间有一个叉子。哲学家的生活包括吃饭和思考的交替时期。 (即使对哲学家来说,这也是一种抽象概念,但其他活动在这里无关紧要。)当哲学家感到足够饥饿时,她会尝试以任一顺序一次获得左叉和右叉。 如果成功获得两把叉子,她吃一会,然后放下叉子,继续思考。 目标是防止所有哲学家拿起左叉或右叉并卡住的死锁。 同样为了防止饥饿,一些哲学家无法进食,因为其他哲学家正在囤积叉子。 #解决方案 我只是为每个叉子创建了一个带有公平论证的信号量,以便所有哲学家都有平等的机会吃饭。 我的解决方案带有一个非常简单的 GUI 来说明正在发生的事情以及每个状态更改的详细控制台。
【文件预览】:
Philosophers-Multi-Threading-Problem-master
----README.md(1KB)
----gui.java(4KB)
----Philosopher.java(4KB)