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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王少雷 高级黑马   /  2013-1-21 17:30  /  1145 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

synchronized (obj) {
while (<condition does not hold>)
obj.wait(timeout);
... // Perform action appropriate to condition
     }
在没有被通知、中断或超时的情况下,线程还可以唤醒一个所谓的虚假唤醒 (spurious wakeup)。虽然这种情况在实践中很少发生,但是应用程序必须通过以下方式防止其发生,即对应该导致该线程被提醒的条件进行测试,如果不满足该条件,则继续等待。换句话说,等待应总是发生在循环中,如上面的示例。

这咱情况 谁遇见过?
来谈下实际情况。

1 个回复

倒序浏览
notify()  
此方法只应由作为此对象监视器的所有者的线程来调用。通过以下三种方法之一,线程可以成为此对象监视器的所有者:通过执行此对象的同步实例方法。
通过执行在此对象上进行同步的 synchronized 语句的正文。
对于 Class 类型的对象,可以通过执行该类的同步静态方法。

    只能找到这样的回答。不好意思。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马