您的位置:首页 > 大数据 > 人工智能

wait和nofity

2015-09-10 17:47 253 查看
notify() 
唤醒一个等待在this object的monitor的线程。多个线程的话,其中有一个会被唤醒。

这个选择是任意的,可以自由实现。一个线程通过调用wait 方法之一在这个object的monitor上等待。

被唤醒的线程一直等到当前线程放弃此object的monitor才能继续。被唤醒的线程将和其他可能的线程

竞争同步此object的机会。例如,被唤醒的线程在成为下一个锁住此对象上不享受权利或劣势。

这个方法只应该被拥有object的monitor的线程调用,一个线程可以通过下面三种方式成为此对象的monitor的拥有者。
通过调用这个对象的同步实例方法
执行synchronous(some) {}中的代码体
对于Class类型的对象,通过执行这个class的静态方法。

同一时刻只能有一个线程拥有这个对象的monitor

wait() 

使当前线程等待直到另外一个线程调用了这个对象的Object#nofity()方法或者Object的notifyAll()方法。
当前线程必须拥有此对象的monitor。这个线程释放拥有权并且一直wait到另一个线程调用nitify或者notifyAll方法。这个
线程然后就可以等待到重新获得monitor并且继续执行 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java