首页 > 解决方案 > 在对象的不同实例上同步方法

问题描述

我有一堂课:

class Station {
  public void decrement(){
    // ...      
  }
}

它有两个不同的实例:station1station2。两个不同的线程在station1station2上调用函数decrement() 。我想同步所有对象和线程。decrement()

根据我的阅读,synchronized关键字同步单个对象的函数调用,因此在这里不起作用。如何在所有实例之间同步调用Station

标签: javasynchronization

解决方案


synchronized而是对象。例子:

class Station {
    private final static Object DECREMENT_LOCKER = new Object();

    public void decrement(){
        synchronized (DECREMENT_LOCKER) {
            //do smt
        }
    }
}

推荐阅读