有关4-1线程同步课程中有个问题想请教一下老师

有关4-1线程同步课程中有个问题想请教一下老师

http://img1.sycdn.imooc.com//climg/5b5f20050001252103790035.jpg

如果加了 Synchronized关键字,那之前的sleep方法是否可以去掉?因为synchronized 关键字是为了让共享对象在同一时刻只被一个线程访问,所以我觉得加不加sleep()方法已经没有意义了,因为sleep方法并不能解决需求中线程同步问题,我不知道这么理解是否正确,请老师给予解答

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

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

1回答
irista23 2018-07-31 10:34:33

被synchronized作用的对象,线程sleep后,马上别的线程会接着执行。虽然不会释放之前持有的锁,sleep能够让低优先级的线程有机会运行。

  • 提问者 Mitsushima_Hikari #1
    不是很明白。synchronized 关键字不是为了让共享对象在同一时刻只被一个线程访问吗?这里用sleep只是让线程暂时处于阻塞状态,时间一到又会恢复可运行状态,只有当当前线程执行结束,才会执行另一个线程吧?
    2018-07-31 14:36:19
  • irista23 回复 提问者 Mitsushima_Hikari #2
    synchronized 同步锁只锁住了对象执行的代码块,其他线程还是可以正常执行没有加锁的代码,多线程每个子线程都是交替执行的。
    2018-07-31 15:15:06
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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