Redian新闻
>
请问真的会dead lock吗?
avatar
请问真的会dead lock吗?# JobHunting - 待字闺中
c*t
1
CC150 16.3 是多人用一双筷子的问题,必须先拿到left,再拿到right,才可以吃。
第一个解,筷子用了lock, pickup() lock, putdown() unlock, 下面是多人thread里
面的eat()过程,
public void eat() {
left.pickup();
right.pickup();
chow();

left.putdown();
right.putdown();
}
书上说这个有可能deadlock, 因为一个人拿left,另一个拿了right,就deadlock了
可我觉得当执行left.pickup();如果没有lock,thread就会waiting,就不会执行right.
pickup()吧。我特地测了一下,没有deadlock发生。
多谢!
avatar
d*x
2
这种东西你实测一下就知道了,dead lock的几率非常大。
呃,你测了。。是不是你理解错题意了?哲学家吃饭问题是5个人坐一圈,只有5根筷子。
当所有人都拿起左手边上的筷子等右手边时,就死锁了

right.

【在 c********t 的大作中提到】
: CC150 16.3 是多人用一双筷子的问题,必须先拿到left,再拿到right,才可以吃。
: 第一个解,筷子用了lock, pickup() lock, putdown() unlock, 下面是多人thread里
: 面的eat()过程,
: public void eat() {
: left.pickup();
: right.pickup();
: chow();
:
: left.putdown();
: right.putdown();

avatar
c*t
3
我测了10个人用1双筷子,每人吃1000口(吃一口就放下筷子),测了很多次,也没死
锁。

子。

【在 d**********x 的大作中提到】
: 这种东西你实测一下就知道了,dead lock的几率非常大。
: 呃,你测了。。是不是你理解错题意了?哲学家吃饭问题是5个人坐一圈,只有5根筷子。
: 当所有人都拿起左手边上的筷子等右手边时,就死锁了
:
: right.

avatar
s*y
4
10个人用10只筷子,不是1双。每个人left调用都成功了,就没有筷子可用,也就都等
在right上,死锁了。
left.pickup();
right.pickup();
avatar
d*f
5
你肯定没写过mpi程序

【在 c********t 的大作中提到】
: CC150 16.3 是多人用一双筷子的问题,必须先拿到left,再拿到right,才可以吃。
: 第一个解,筷子用了lock, pickup() lock, putdown() unlock, 下面是多人thread里
: 面的eat()过程,
: public void eat() {
: left.pickup();
: right.pickup();
: chow();
:
: left.putdown();
: right.putdown();

avatar
d*x
6
re.
请楼主自行google或百度"哲学家吃饭"

【在 s*******y 的大作中提到】
: 10个人用10只筷子,不是1双。每个人left调用都成功了,就没有筷子可用,也就都等
: 在right上,死锁了。
: left.pickup();
: right.pickup();

avatar
h*6
7
哲学家真的能在计算机出现之前凭空想出死锁问题?这也太牛了吧。
avatar
d*x
8
"在1971年,著名的计算机科学家艾兹格·迪科斯彻提出了一个同步问题,即假设有五
台计算机都试图访问五份共享的磁带驱动器。稍后,这个问题被托尼·霍尔重新表述为
哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。"

【在 h**6 的大作中提到】
: 哲学家真的能在计算机出现之前凭空想出死锁问题?这也太牛了吧。
avatar
c*t
9
哦,读错题了,我再试试。

【在 s*******y 的大作中提到】
: 10个人用10只筷子,不是1双。每个人left调用都成功了,就没有筷子可用,也就都等
: 在right上,死锁了。
: left.pickup();
: right.pickup();

avatar
a*m
10
不少算法是在计算机出现之前就有的。

【在 h**6 的大作中提到】
: 哲学家真的能在计算机出现之前凭空想出死锁问题?这也太牛了吧。
avatar
s*i
11
不知道版上有多少人,第一次看到这个问题,和我想得一样:别人用过的餐具不洗就拿
来用,是不是太不卫生...
avatar
c*t
12
多谢,测出deadlock来了。

★ 发自iPhone App: ChineseWeb 7.8

【在 d**********x 的大作中提到】
: re.
: 请楼主自行google或百度"哲学家吃饭"

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。