wait和notify方法

来源:互联网 发布:重庆时时计划软件 编辑:程序博客网 时间:2024/06/05 12:49

wait和notify相关概念:
wait和notify方法是Java同步机制中重要的组成部分, 他们只有在Synchronized方法或Synchronized代码块中才能使用
否者就会报java.lang.IllegalMonitorStateExceprion异常
当Synchronized方法或者Synchronized代码块中的wait() 方法被调用时,当前线程将被中断运行,并且放弃该对象锁
当例外的线程执行了某个对象notify()方法后,会唤醒在此对象等待池中的某个线程使之成为可运行的(就绪状态)线程。
notifuAll()方法会唤醒所有等待这个对象的线程使之成为可运行的线程。

注意事项:
1.当方法wait被执行后,锁会被自动释放,但执行完notify()方法,锁不会自动释放
2.当线程呈wait状态,如果此时调用线程对象的interrupt()方法会导致线程出现InterruptedException异常。
3.调用对象一次notify()方法只会唤醒该对象锁定的一个线程,如果要全部唤醒,需要调用notifyAll()方法
4.wait(long)方法的功能是等待一个时间段,如果超过这个时间段没有被唤醒,将自动唤醒。

原创粉丝点击