线程的通知与等待

Java中的Object类是所有类的父类,鉴于继承机制,Java把所有的类都需的方法放在了Object类里面,其中就包含要说的通知与等待。

1.wait()方法

当一个线程调用一个共享变量的wait()方法时,该调用线程会被阻塞挂起,直到发生下面几件事情之一才返回。

​ 1.其他线程调用了该共享对象的 notify() *或者 *notifyAll() 方法。

​ 2.其他线程调用了该线程的 interrupt() 方法,该线程抛出 InterruptedException 异常返回

另外需要注意的是,如果调用 wait() 方法的线程没有事先获取该对象的监视器锁,则调用wait()方法时调用线程会抛出 *IllegalMonitorStateException *异常。

那么一个线程如何才能获取一个共享变量的监视器锁呢?

阅读更多