加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – wait(),notify() – 哪个线程首先解锁?

发布时间:2020-12-15 05:14:13 所属栏目:Java 来源:网络整理
导读:试图理解wait()和notify().我知道线程A何时进入wait(),它将被来自其他线程的notify()唤醒. 但是如果线程A,B,C以所表示的顺序进入wait()会发生什么?谁会被notify()唤醒?根据我的实验,一个线程将首先被唤醒.我是正确的? 这是否意味着系统知道线程进入wait()
试图理解wait()和notify().我知道线程A何时进入wait(),它将被来自其他线程的notify()唤醒.

但是如果线程A,B,C以所表示的顺序进入wait()会发生什么?谁会被notify()唤醒?根据我的实验,一个线程将首先被唤醒.我是正确的?

这是否意味着系统知道线程进入wait()的顺序?

解决方法

notify()的文档中,强调我的:

Wakes up a single thread that is waiting on this object’s monitor. If any threads are waiting on this object,one of them is chosen to be awakened. The choice is arbitrary and occurs at the discretion of the implementation. A thread waits on an object’s monitor by calling one of the wait methods.

其他一些API(例如Semaphore)具有“公平性”的概念,您可以确保线程按照它们阻止的顺序继续进行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读