* wait();一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。
* notify():一旦执行此方法,就会唤醒被wait()的一个线程。如果有多个线程被wait,就会唤醒优先级高的哪一个线程。
* notifyAll():一旦执行此方法,就会唤醒所有被wait的线程。
*
* 说明:
* 1、wait();notify():notifyAll():这三个方法都必须使用同步代码块或同步方法之中。
* 2、wait();notify():notifyAll():这三个方法的调用者必须是同步代码块或同步方法之中的同步监器。
* 3、wait();notify():notifyAll():这三个方法是定义在,java.long.Object类中。
面试题:sleep()和wait()的异同?
1、只要执行此方法,都可以是当前的线程进入阻塞状态。
2、不同点:1):两种方法声明的位置不同:Thread类中声明sleep(),Object类中声明wait();
2):调用时的要求不一样:sleep()可以在任意需要的场景下调用。wait()必须使用在同步代码块或同步方法中。
3):关于是否释放同步监视器;如果两个方法都使用在同步代码块或者同步方法中,sleep(),不会释放锁(同步监视器),wait()会释放。