wait和notify的使用方法

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