什么时候抛出InvalidMonitorStateException异常?为什么?
调用 wait ()/notify ()/notifyAll ()中的任何一个方法时,如果当前线程没有获得该对象的锁,
那么就会抛出 IllegalMonitorStateException 的异常
也就是说程序在没有执行对象的任何同步块或者同步方法时,
仍然尝试调用 wait ()/notify ()/notifyAll ()时。由于该异常是 RuntimeExcpetion 的子类,
所以该异常不一定要捕获(尽管你可以捕获只要你愿意
作为 RuntimeException,此类异常不会在 wait (),notify (),notifyAll ()的方法签名提及。 |
|