查看: 1765|回复: 0
打印 上一主题 下一主题
收起左侧

[Java基础] 115、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

[复制链接]

566

主题

713

帖子

3827

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3827
楼主
跳转到指定楼层
发表于 2016-9-4 11:47:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
115、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?  


分几种情况:
     1.其他方法前是否加了synchronized关键字,如果没加,则能。
     2.如果这个方法内部调用了wait,则可以进入其他synchronized方法。
     3.如果其他个方法都加了synchronized关键字,并且内部没有调用wait,则不能。
4.如果其他方法是static,它用的同步锁是当前类的字节码,与非静态的方法不能同步,因为非静态的方法用的是this。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 打开微信扫一扫