当一个线程进入一个对象的一个synchronized方法后,请问其它线程是否可进入此对象的其它方法呢?
今天面试时,被问到这个问题,当一个线程进入synchronized方法后,其它线程是否可以访问其它方法呢?
下面将列举常见的几种情况,如下所示:
下面将列举常见的几种情况,如下所示:
如果其它方法前加了synchronized关键字,则其它线程不能访问此方法,如果没有加,则能访问此方法 当这个方法内部调用了wait,则可以进入其他synchronized方法 当其他个方法都加了synchronized关键字,当前方法内部未调用wait,则其它线程不能访问此方法 当其他方法是static,则其使用的同步锁是当前类的字节码,与非静态的方法不能同步,因为非静态的方法用的是this 两者互不影响
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。