java - 来自不同类的同步语句

标签 java synchronization

我有两个实现接口(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/

相关文章:

java - 将声明式和编程式事务与 Spring 和 JPA 监听器混合

java - Comparable 接口(interface)的声明

java - 将 double[] 数组添加到 weka 实例

java - Hibernate映射<基本,实体>映射(3个表)

java - 空指针异常 : Trying to make an android app for 3x3x3 tic tac toe

Java反射,给私有(private)静态字段添加 volatile 修饰符

java - 隐写术出了问题

c# - 我是否需要 Dispose() 或 Close() 一个 EventWaitHandle?

synchronization - Angular2,保持模型在组件之间同步

angularjs - PhoneGap 中与服务器同步数据的策略