我有两个实现接口(interface) A 的类 B 和 C。这两个类中都存在一个带有需要同步的语句的方法。我有这个:
class B implements A {
@Override
public void method(){
//some code here
synchronized (this.getClass()) {
//some code here
}
}
}
class C implements A {
@Override
public void method(){
//some code here
synchronized (this.getClass()) {
//some code here
}
}
}
我需要同步两个类中的语句,但使用 this.getClass 返回不同的类,并且它可以同时执行。如何同步来自不同类的这两个语句,使其同时只执行一次?
最佳答案
需要同步它们的最可能原因是它们将访问一些公共(public)对象。如果是这样,请在该对象上同步。
如果没有,并且您控制接口(interface)A,则可以添加:
public static final Object LOCK = new Object();
并让它们在 A.LOCK 上同步。
关于java - 来自不同类的同步语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30515152/