当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?

小助手 面试 23

不能。其它线程只能访问该对象的非同步方法,同步方法则不能进入。

因为非静态方法上的synchronized修饰符要求执行方法时要获得对象的锁,如果已经进入A方法说明对象锁已经被取走,那么试图进入B方法的线程就只能在等锁池(注意不是等待池哦)中等待对象的锁。

回复

我来回复
  • 暂无回复内容