notify()是随机唤醒里面中的一个线程还是队列里面的第一个线程 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 wait与notify是java同步机制中重要的组成部分。结合与synchronized关键字使用,可以建立很多优秀的同步模型。notify与notifyAll没有太多的区别,只是notify仅唤醒一个线程并允许它去获得锁,notifyAll是唤醒所有等待这个对象的线程并允许它们去获得对象锁,只要是在synchronied块中的代码,没有对象锁是寸步难行的。其实唤醒一个线程就是重新允许这个线程去获得对象锁并向下运行。 顺便说一下notifyall,虽然是对每个wait的对象都调用一次notify,但是这个还是有顺序的,每个对象都保存这一个等待对象链,调用的顺序就是这个链的顺序。其实启动等待对象链中各个线程的也是一个线程,在具体应用的时候,需要注意一下。 答:notify选择唤醒其中一个线程。选择是任意性的,由具体实现做出决定.因此设计JAVA程序时,不要依赖于这一点. thanks 一楼实在是详细 好像偏题了 但还是感谢啊 如何使Jtable自动处于最底端 请教个Java读取文件中的数据和按照一定格式输出的问题 求助:myeclipse的使用疑问? 刚刚开始学JAVA,请教一个关于输入判断和程序时间的问题 找不到jar包 java 切换进程操作 高手来解决下, 在线等... 用JDBC进行多表查询时得不到结果集的问题?~~ 不会用这个用java写成的工具,如果有人能教我用的话,特别感谢!(急!) 内存数据库h2database的使用 <***--JBuilder 5.0: How to use JDK1.4 beta3 by configuring JDKs?--***> path设置 JDK的版本出了问题
notify与notifyAll没有太多的区别,只是notify仅唤醒一个线程并允许它去获得锁,notifyAll是唤醒所有等待这个对象的线程并允许它们去获得对象锁,只要是在synchronied块中的代码,没有对象锁是寸步难行的。其实唤醒一个线程就是重新允许这个线程去获得对象锁并向下运行。
顺便说一下notifyall,虽然是对每个wait的对象都调用一次notify,但是这个还是有顺序的,每个对象都保存这一个等待对象链,调用的顺序就是这个链的顺序。其实启动等待对象链中各个线程的也是一个线程,在具体应用的时候,需要注意一下。