开发者社区> 问答> 正文

关于Java的synchronized使用问题

screenshot
screenshot
这个计算结果为什么得出的结果是:
500
500
我的思路:method1()方法属于synchronized方法,会锁定MyRunnabe的监视器,这个时候虽然其中调用了sleep(5000),但是此时执行method2()方法法时会因为this.b被锁定而阻塞,应该是等method1()执行完了再执行this.b = 500这条语句,其计算结果应该为:
100
500
求解!

展开
收起
蛮大人123 2016-02-26 14:17:31 2040 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你同步锁的是方法,不是对象,只是有线程method1没有执行完,其他线程进不去这个方法。这个方法内用到的变量和这个锁没关系,其他方法照样能够使用。

    2019-07-17 18:48:12
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载