看到这个问题,可能很多小伙伴看到这题都会这么答:
不能,一个对象的一个synchronized方法只能由一个线程访问。
乍一看好像并没有什么问题,但是,仔细观察可以发现,题中并没有说明其他线程访问的是此对象的其他同步方法还是非同步方法,所以我们应该分情况来分析。
情况一:
当一个线程进入一个对象的一个synchronized方法后,其它线程访问该对象的非同步方法。
一个线程在访问一个对象的synchronized方法时,其他线程可以同时访问此对象的非同步方法。
情况二:
当一个线程进入一个对象的一个synchronized方法后,其它线程也访问该对象的同步方法。
一个线程在访问一个对象的synchronized方法时,其他线程不能同时访问这个同步方法。
情况三:
当一个线程进入一个对象的一个synchronized方法后,其它线程同时访问该对象的其他同步方法。
一个线程在访问一个对象的synchronized方法时,其他线程不能同时访问这个对象的其他同步方法。