从另一个在不同对象上的同步方法中调用一个同步方法

可以说我们有两个类A,B和相应类的同步方法methodA,methodB。如果我们从同步方法A调用同步方法B,那么在方法B仍在执行时,线程是否仍对对象A保持锁定?

Class A
{
   public synchronized void methodA()
   {
       //do something;
       synchronized(ObjectB)
       {
          ObjectB.methodB();
       }
   }
}

Class B
{
   public synchronized void methodB()
   {
      //do something
   }
}
zmf2200 回答:从另一个在不同对象上的同步方法中调用一个同步方法

只要您处于同步块,该锁就会一直保持。可以根据需要锁定任意数量的锁,但是这种嵌套的同步会影响应用程序的整体性能。

本文链接:https://www.f2er.com/3142906.html

大家都在问