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