首页 > 技术文章 > Monitor

lnas01 2016-09-28 09:42 原文

 
 
线程如果获得监视锁成功,将成为该监视者对象的拥有者。
在任一时刻内,监视者对象(Monitor)只属于一个活动线程 (Owner)
 
 
wait()、notify(),notifyAll()的使用:
obj.wait()方法将使本线程挂起,并释放obj对象的monitor。只有其他线程调用obj对象的notify()或notifyAll()时,才可以被唤醒。
obj.notifyAll()方法唤醒所有该obj对象相关的沉睡线程,然后被唤醒的众多线程开始竞争obj对象的monitor占有权,最终得到的那个线程会继续执行下去,但其他线程还将继续等待。
obj.notify()方法是随机唤醒一个沉睡线程。wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用。
 
 
 
 
 
 
 
 

推荐阅读