wait和notify的使用方法
前提:wait和notify、notifyAll都只能在同步代码块或者同步方法中调用,且要通过锁对象进行调用,否则会抛出IllegalMonitorStateException
1.wait
-
wait(),当前线程进入无限等待状态,必须被唤醒才能继续执行,调用后会释放锁对象
-
wait(long timeout),wait(long timeout,int nanos),当前线程进入等待状态,可以被提前唤醒,但在指定时间后会自动唤醒
2.notify
-
notify(),随机唤醒一个在锁对象上调用wait的线程
-
notifyAll(),唤醒全部在锁对象上调用wait的线程
例子: