可以说我们有两个类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
}
}
答案 0 :(得分:0)
只要您处于同步块,该锁就会一直保持。可以根据需要锁定任意数量的锁,但是这种嵌套的同步会影响应用程序的整体性能。