【Android】当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

看到这个问题,可能很多小伙伴看到这题都会这么答:

不能,一个对象的一个synchronized方法只能由一个线程访问。

乍一看好像并没有什么问题,但是,仔细观察可以发现,题中并没有说明其他线程访问的是此对象的其他同步方法还是非同步方法,所以我们应该分情况来分析。

情况一:

当一个线程进入一个对象的一个synchronized方法后,其它线程访问该对象的非同步方法。

一个线程在访问一个对象的synchronized方法时,其他线程可以同时访问此对象的非同步方法。

情况二:

当一个线程进入一个对象的一个synchronized方法后,其它线程也访问该对象的同步方法。

一个线程在访问一个对象的synchronized方法时,其他线程不能同时访问这个同步方法。

情况三:

当一个线程进入一个对象的一个synchronized方法后,其它线程同时访问该对象的其他同步方法。

一个线程在访问一个对象的synchronized方法时,其他线程不能同时访问这个对象的其他同步方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容