wait加锁详细解释下

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Java架构师讲师团 2020-02-02 16:08:25

你这样理解就可以了,如果并发的执行wait会出现什么情况?还有在唤醒的时候,并发唤醒,到底是哪一个线程唤醒的?

所以在wait和notify的时候,是需要获取到当前对象的锁的。

    1. 请问:

    2. ​并发执行wait会有什么问题吗?底层入waitset 的时候锁一下不就行了

    3. 并发唤醒,应该随机选择(非公平),也和锁没有关系啊,没有必要非要有个锁再做这个事情吗?

    4. 另外,这里的写法,真的会保证是顺序执行吗?zkLock 对象唯一的话,不能保证顺序进行啊,最多就是一个线程 wait 之后,一个线程notify,这里的 wait 和 notify的意义在哪里?

    2021-05-21 10:38:21
  • 第4点已经搞明白了,这个锁并非唯一,而是每次都创建新对象。但是 wait 的过程中一定要 synchronize 还是不明白,还是觉得没有必要。 

    2021-05-21 11:02:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师