等待/通知
使用wait()、notify()、notifyAll()时需要先对调用对象加锁
调用wait()方法后,线程状态有RUNNING状态转变为WAITING,并将当前线程放置到对象的等待队列
notify()或notifyAll()方法调用后,等待线程依旧不会从wait()返回,需要调用notify()或notifyAll()的线程释放锁之后,等待的线程才会有机会从wait()返回
notify()方法将等待队列中的一个等待线程从等待队列移中到同步队列,而notifyAll()方法将等待队列中的所有线程全部移动到同步队列,被移动的线程状态由WAITING变为BLOCKING
从wait()方法返回的前提是获得了调用对象的锁