notify()和notifyAll()的区别 如题, 请不要把JDK文档的内容照搬上来,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void notify(): 唤醒一个正在等待该对象的线程。void notifyAll(): 唤醒所有正在等待该对象的线程。 “正在等待该对象”是指什么对象呢?一个有个All,一个没有,从英文语言上,或者从JDK文档上,谁都知道语文上的意思是什么,但问题是实际原理上是何区别呢? 操作系统学过没?学过就知道 记录型信号量只唤醒队列中的第一个。而信号量集的方式常常是唤醒所有说简单点打点比方假设2个队列 一个是某事件的阻塞队列,一个是就绪队列。notify,就是把由于`该事件阻赛的队列第一个唤醒,而notifyAll,就是把所有阻塞的都唤醒,唤醒,之后,是否能够到就绪队列,就要看具体的情况了(通常能够转移到就绪队列) 楼主还是先看看这两个方法涉及到的概念再来问吧 notify和notifyAll都是java多线程的部分,java提供了机制可以锁住对象(对象也是一种资源),当一个对象被一个线程访问时,这个对象能被锁住,这时其他要访问这个对象的线程就处于阻塞状态。但是如果线程调用了该对象的wait()方法,就会释放该对象的锁,并停止运行继续等待直到其他线程调用了这个对象的notify或notifyALL。但是,可能有好几个线程调用了该对象的wait同时等待,所以notify只是唤醒其中的一个(具体哪一个时由虚拟机的线程调度机制决定的)notifyAll唤醒所有线程。 TL1的技术文档谁有?求助 怎么从一个select语句中截取表名 改FileChooser急求 关于多态的问题 请教,像windows桌面上的可以拖动的图标是怎么做的吖??? 怎样用ObjectOutputStream追加文件 如何用jdbc函数返回select查询到的整个表 vb java vrml 原码放送!!!hwmfly两年的心血,毕业了愿与广大网友共享编程乐趣 两个包里有同名的类,怎么知道用哪个 java编码问题 窗口问题! 怎样实现多线程
void notifyAll(): 唤醒所有正在等待该对象的线程。
而信号量集的方式常常是唤醒所有说简单点打点比方
假设2个队列 一个是某事件的阻塞队列,一个是就绪队列。notify,就是把由于`该事件阻赛的队列第一个唤醒,而notifyAll,就是把所有阻塞的都唤醒,
唤醒,之后,是否能够到就绪队列,就要看具体的情况了(通常能够转移到就绪队列)