http://ifeve.com/thread-signaling/#shared_object
1.调用notify() 与 notifyAll() 需要对再锁上面进行调用,也就是需要在同步代码块中调用。
一个线程一旦调用了任意对象的wait()方法,就会变为非运行状态,直到另一个线程调用了同一个对象的notify()方法。为了调用wait()或者notify(),线程必须先获得那个对象的锁。也就是说,线程必须在同步块里调用wait()或者notify()。以下是MySingal的修改版本——使用了wait()和notify()的MyWaitNotify:
2. 信号丢失处理