java.lang.IllegalMonitorStateException 这个异常会在三种情况下抛出:1>当前线程不含有当前对象的锁资源的时候,调用obj.wait()方法;2>当前线程不含有当前对象的锁资源的时候,调用obj.notify()方法。3>当前线程不含有当前对象的锁资源的时候,调用obj.notifyAll()方法。
http://endual.iteye.com/blog/1407724