社区
Java SE
帖子详情
请问调用notify后被选中线程的wait是立刻返回,还是等到调用notify的线程退出synchronized块后再返回?
natrium11
2002-10-04 08:56:58
我想应该是后者,但是因为要写书,还是确定一下。
唉,所有的例子都把notify作为最后一条语句,虽然应该如此,可是无法说明这一点。
多谢各位!!!
...全文
131
9
打赏
收藏
请问调用notify后被选中线程的wait是立刻返回,还是等到调用notify的线程退出synchronized块后再返回?
我想应该是后者,但是因为要写书,还是确定一下。 唉,所有的例子都把notify作为最后一条语句,虽然应该如此,可是无法说明这一点。 多谢各位!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Iforgot
2002-10-05
打赏
举报
回复
不是骂你,是实在看咱国人写的书很痛心。所以希望你能够写好书,也就是祝愿你写出好书!
natrium11
2002-10-05
打赏
举报
回复
多谢各位的答复,本人非常感激,加一些分吧,可是不好意思,本人最多只能给100(该死的csdn,我一想到这一点就有气!)。
to Iforgot(清风雨) :骂得好,骂得真好,不用给我面子,呵呵。
DanielYWoo
2002-10-05
打赏
举报
回复
to qqbz(qqbz)
人家写书耶!当然要深入写了
我认为是后者,大家如果从锁计数器的角度考虑,
就很清晰了
qqbz
2002-10-04
打赏
举报
回复
1、有关概念是这样的:
遇到notify(),运行系统立刻从等待池中任选一wait的线程进入寻找对象锁状态,
2、因此我认为在第一点中并不能说是立刻返回,应当是该线程重新找回对象锁继续执行该方法。
3、一般而言,在一个线程调用的synchronized方法中使用了wait后,需要另一个synchronized方法来notify()。
4、对于一般性的编程,似乎没必要钻研得那么深入,只要记住以上第一点。
zbc
2002-10-04
打赏
举报
回复
应该是后者,因为在synchronized语句块里面,任何时候只能有一个线程的,只有调用notify的线程退出后,线程才具有抢占cpu的机会
Iforgot
2002-10-04
打赏
举报
回复
个人觉得应该是后者,否则可能容易死锁!
我希望阁下写书时能够认真点,中国人自己写的书基本都一个字“差”。真的,简直就是误人子弟。但愿阁下能够是为数不多的不得“很差”之名的中国人。
实在看到很多人写书太不负责,所以或多或少对国人这种态度有些不太好感。如有冒犯之处还敬请原谅。
DanielYWoo
2002-10-04
打赏
举报
回复
后者吧
你想,notify之后,被激活的线程不能立即有锁呀,
必须出了synchronized语句块或方法,才能锁计数器减1
被激活的线程发现锁计数器为0时,才能对此对象操作
natrium11
2002-10-04
打赏
举报
回复
你的意思是?不大明白
daowang
2002-10-04
打赏
举报
回复
调用wait()后,将释放对象所有的属性,直到遇到notify(),故而未立即返回,这只是我的个人观点
java
线程
没
wait
前
调用
notify
,深入Java
线程
之
wait
和
notify
wait
和
notify
多
线程
是需要同步协作,比如QuartzSchedulerThread,作为Quartz的任务调度
线程
,如果设置该
线程
暂停,那么这个
线程
就必须
wait
, 等外界通知继续的时候,再执行任务。// check if we're supposed to pause...
为什么
wait
和
notify
方法要在同步
块
中
调用
?
因此,为了确保
线程
在
调用
`
wait
()`、`
notify
()` 或 `
notify
All()` 方法时已经持有了对象的监视器锁,这些方法需要在使用 `
synchronized
` 同步
块
中
调用
。`
wait
()` 方法会释放当前
线程
持有的对象监视器锁,并使
线程
...
Java中的
wait
和
notify
这个为什么要在
synchronized
代码
块
中?
2.
wait
和
notify
必然是成对出现的,如果一个
线程
被
wait
()方法阻塞,那么必然需要另外一个
线程
通过
notify
()方法来唤醒这个被阻塞的
线程
,从而实现多
线程
之间的通信。 3.在多
线程
里面,要实现多个
线程
之间的通信,除了...
java
线程
方法
notify
,JAVA-
线程
wait
方法与
notify
方法详解
一、
notify
的含义(视为使当前
线程
获取对象锁并于规定一定条件下释放的方法)(1)
notify
一次只随机...要等到执行
notify
方法的
线程
将程序执行完 ,也就是
退出
sychronized代码
块
后,当前
线程
才会释放锁,而呈
wait
状态所在...
java 为什么
wait
(),
notify
(),
notify
All()必须在同步(
Synchronized
)方法/代码
块
中
调用
?
(1)为什么
wait
()必须在同步(
Synchronized
)方法/代码
块
中
调用
? 答:
调用
wait
()就是释放锁,释放锁的前提是必须要先获得锁,先获得锁才能释放锁。 (2)为什么
notify
(),
notify
All()必须在同步(
Synchronized
)...
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章