生产者消费者详解wait():执行该方法的线程对象,释放同步锁,JVM会把该线程放到等待池中,等待其他线程唤醒该线程notify():执行该方法的线程唤醒在等待池中等待的任意一个线程,把线程转到锁池中等待(注意锁池和等待池的区别)notifyAll():执行该方法的线程唤醒在等待池中等待的所有线程,把线程转到锁池中等待。注意:上述方法只能被同步监听锁对象来调用,这也是为啥wait()和notify()方法都在Object对象中,因为同步监听锁可以是任意对象,只不过必须是需要同步线程的共同对象即可,否则别的对象调用会报错:        java.lang.IllegalMonitorStateException