11_等待/通知(wait/notify)机制介绍

1.当两个线程主动地读取一个共享变量时,在花费读取时间的基础上,读取到的值是不是想要的,并不能完全确定,“等待/通知”机制就用来满足这样的需求。


2.wait()的作用是使当前执行的线程进行等待。调用之前要获取对象级别锁,即只能在同步方法中或者同步块中调用。执行wait()方法后,当前线程释放锁,在从wait()返回前,线程与其他线程竞争重新获得锁。


3.notify()也要在同步方法或者同步块中调用,也是对象级别锁。该方法用来通知等待锁的其他线程,如果有多个线程,则由线程规划器随机挑选出一个呈wait状态的线程,对其发出通知notify,并使它等待获取该对象的对象锁。在执行notify()方法后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获取对象锁,要等到notify()方法的线程将程序执行完成当前线程才会释放锁。在wait状态的线程,这个对象没有发出notify()或者notifyAll()会一直阻塞。


4.sleep()方法不释放锁,不用获取对象级别锁。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值