0

因此,根据这篇维基百科文章中的 Chandy/Misra 部分,我们有 5 位哲学家,编号为 P1-P5。

基于此报价:

对于每对争夺资源的哲学家,创建一个分叉并将其提供给 ID 较低的哲学家(n 代表代理 Pn)。每个叉子可能是脏的或干净的。最初,所有前叉都是脏的

当一个有叉子的哲学家收到请求消息时,如果叉子是干净的,他会保留叉子,但如果叉子脏了,他就会放弃。如果他把叉子送过来,他会在这样做之前清理叉子。

因此,知道所有分叉最初都是脏的,请考虑以下引用及其下方的图像。

对于每一对 Swansons,将叉子交给 id 较小的人。

我的问题是,如果 P3 现在向他的邻居 P2 请求第二个叉子,P2 是否会因为它很脏而放弃他的单个叉子,即使他刚刚捡起它?

4

1 回答 1

0

P3 不能向 P4 要求叉子,因为他已经有了叉子(根据图像)。

P4 持有的叉子只能由 P4 和 P5 共享(根据问题,您只能向邻居要叉子,这意味着P3 只能取 P3 和 P2 之间的叉子以及 P3 和 P4 之间的叉子
换句话说,P4 不能给 P3目前位于 P4 和 P5 之间 的分叉

因此,P3 将不得不等到 P2 给他第二次分叉

** 编辑 **
是的,P2 将放弃前叉,因为它很脏

于 2015-05-14T21:43:43.443 回答