wait和notify方法

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)方法的功能是等待一个时间段,如果超过这个时间段没有被唤醒,将自动唤醒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值