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

发布于 2022-09-07 08:53:49 字数 148 浏览 15 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北座城市 2022-09-14 08:53:49

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

坐在坟头思考人生 2022-09-14 08:53:49

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文