为了账号安全,请及时绑定邮箱和手机立即绑定

线程等待与唤醒为什么一定要锁?

线程等待与唤醒为什么一定要锁?

梦里花落0921 2019-01-19 02:03:46
任意线程 X 对任意线程 Y 执行 wait()、notify() 方法时,都需要先获取锁。话说锁机制是为了解决临界资源问题,那么让线程启动和暂停访问了什么临界资源吗?可不可以不通过锁,而通过类似于中断、消息的方式实现线程的等待与唤醒呢?求各位大佬不吝赐教。
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

wait()和nitify()就是用来解决临界资源的问题的,一个临界资源在一个线程中由于其他的原因,这个线程不能执行,我们就需要将这个临界资源执行wait(),让其他线程能够调用这个临界资源。
如果按你所说的话,不是临界资源,那么就不需要使用wait方法,因为不影响其他线程,其他线程根本不会阻塞

查看完整回答
反对 回复 2019-02-12
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

等待和唤醒对象就是临界资源,否则线程为什么要等待呢,是不是。

查看完整回答
反对 回复 2019-02-12
  • 2 回答
  • 0 关注
  • 825 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信