什么是同步上下文在Java中

Moh*_*Amr 6 java synchronization

大家都知道Java中的同步上下文

  • 在实例上.
  • 在某个加载类的java.lang.Class实例上.
  • 在给定的对象上

我需要问一下; 当我写作

Dimension d = new Dimension();

synchronized(d){
  // critical atomic operation
}
Run Code Online (Sandbox Code Playgroud)

实际上,给定对象的同步等于实例上的同步.

因此,当我编写synchronized(d),其中d是对象的实例时,线程将获得所有同步实例代码块的锁定.

你能否告诉我有关同步环境的更多细节.

您的回复将不胜感激.

Cha*_*win 1

将同步关键字应用于非静态方法是以下形式的简写:

public void method() {
    synchronized(this) {
        // method
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您应用synchronized静态方法,那么它会在调用该方法时锁定类对象 (MyClass.class)。