如果一个同步方法调用wait()的另一个同步方法(在另一个类中)会怎么样。锁定是否会以第一种同步方法释放,虽然在另一个类中?同步方法调用另一个调用wait()的同步方法
E.g.
public class A {
private B b;
public A(B b) {
this.b = b;
}
public synchronized String a() {
return b.b();
}
}
public class B {
public synchronized String b() {
while (!someCondition) wait();
return "Success!";
}
}
所以我的问题是,才有可能在时间someCondition期间,进入一个不同的同步方法=假?或者wait()是否可以在B中输入其他同步方法,而尝试在A中输入另一个同步方法将会失败,直到()返回?
没有,只会释放'B',请参阅:http://tutorials.jenkov.com /java-concurrency/nested-monitor-lockout.html –