老师,锁相关的一些问题

老师,锁相关的一些问题

按照3-11图文节的说法,同一时间只能存在一个线程获取锁,获取锁后还需要判断运行条件,那么当执行b任务的线程在执行任务的时候,它肯定是满足这两个条件的,那么执行a任务的线程又是如何获取到的锁了,难道是判断执行b任务的线程是满足运行状态之后,就释放了锁?

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

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

1回答
好帮手慕小尤 2021-10-27 13:09:45

同学你好,是的,当b线程执行完成后,会唤醒之前等待的线程,也就是释放锁。如下所示:

https://img1.sycdn.imooc.com//climg/6178cd7309009f2211260302.jpg

祝学习愉快!

  • 提问者 慕楠枫桥 #1

    1,老师看看是不是这种情况,一开始是执行a任务的线程获取到了锁,但是他没有满足运行条件,所以进入等待状态同时失去了锁,然后被执行b任务的线程获取了锁并且满足运行条件,该线程执行完之后再去唤醒等待中的线程a
    2,此种进入等待状态的方式是线程要等待获取资源或者信号吗?

    2021-10-27 13:35:17
  • 好帮手慕小尤 回复 提问者 慕楠枫桥 #2

    同学你好,1、同学理解是正确的。

    2、同学可以这么理解,等待其他线程进行唤醒,唤醒后获取资源。

    祝学习愉快!

    2021-10-27 15:03:56
  • 提问者 慕楠枫桥 #3

    好的,谢谢老师

    2021-10-27 15:48:27
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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