使用Java实现经典的进程同步问题--哲学家进餐问题
五个哲学家围坐在一个圆桌周围,每个哲学家面前都有一只碗,各碗之间分别有一根筷子,餐桌如下图。
哲学家的生活包括两种活动:即吃饭和思考。当哲学家觉得饿时,他就分两次去取他左边和右边的筷子,每次拿一根(不能强行从邻座手中抢过筷子),如果成功,他就开始吃饭,吃完后把筷子放回原处继续思考。
筷子是临界资源,一段时间内只允许一个哲学家使用。可用一个信号量表示一支筷子。由五个信号量构成信号量数组。
//伪代码
while(TRUE){
think();
P(chopstick[i]);
P(chopstic.
原创
2021-10-15 19:11:35 ·
950 阅读 ·
0 评论