A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

调用notify,不是说消费者线程马上就运行,而是这两个消费者线程都有了运行的资格,谁先抢到cpu谁就运行。
回复 使用道具 举报
ixiangfeng 发表于 2014-1-14 17:23
一个synchronized只有一个锁,像你说的1号和2号被唤醒后,两个都具有执行资格,但是最多只能有一个具有执 ...

你解释的确实很好,看来你是高手中的高手,理解的都很透彻。膜拜高手!!!可否留下个联系方式?
回复 使用道具 举报
ixiangfeng 发表于 2014-1-14 17:23
一个synchronized只有一个锁,像你说的1号和2号被唤醒后,两个都具有执行资格,但是最多只能有一个具有执 ...

你想表达的是只能有一线程拿到锁。而老毕讲的锁,打了个上火车卫生间的例子。就是说门上显示有人,别的人就不能进来。并且老毕讲的是判断锁,我以前的理解是1号和2号被唤醒后都不用再判断锁,所以都可以执行代码,就相当于两个人同时被锁在卫生间,都可以在里面活动。    听了你的讲解:好像是即使唤醒后还要判断死否拿到锁,就相当于谁拿有钥匙才能执行(如果卫生间有钥匙的话),是不是可以这样理解???????
回复 使用道具 举报
潜伏 发表于 2014-1-14 23:01
你想表达的是只能有一线程拿到锁。而老毕讲的锁,打了个上火车卫生间的例子。就是说门上显示有人,别的人 ...

我是这样理解的,老毕说的火车卫生间的例子应该也可以,不过执行了wait之后就相当于出去了,这时别人也可以进去了 理解得差不多就好 有时太深究会很痛苦的,再理解深一些例如多核CPU会怎样等问题,要完完全全理解的话估计还要学很多相关的东西
回复 使用道具 举报
本帖最后由 ixiangfeng 于 2014-8-5 21:28 编辑

                                                                                                                         ·                                                                              

回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马