文章
267
粉丝
1101
获赞
1683
访问
136w
semaphore count = n-1; // 可进餐名额数量
semaphore chopsticks[n]; // 所有筷子资源的信号量
for (int i=0; i<n; i++) {
chopsticks[i] = 1;
}
CoBegin
Process 哲学家i() {
while (true) {
思考;
P(count);
P(chopsticks[i]); // 取左边筷子
P(chopsticks[(i+1)%n]); // 取右边筷子
进餐;
V(chopsticks[i]); // 放回左边筷子
V(chopsticks[(i+1)%n]); // 放回右边筷子
V(count);
}
}
CoEnd
评分及理由
(1)得分及理由
得分:4分(满分8分)
理由:学生的答案采用了与方法一类似的思路,通过限制可进餐名额数量(`count = n-1`)避免死锁,符合题目要求。但存在以下问题:
题目总分:4分
登录后发布评论
暂无评论,来抢沙发