Java 中的构造函数可以同步吗?

javaobject oriented programmingprogramming更新于 2024/5/9 19:43:00

不可以,Java 中的构造函数不能同步。JVM 确保在给定时间点只有一个线程可以调用构造函数。这就是为什么不需要将构造函数声明为synchronized,这在 Java 中是非法的。但是,我们可以在构造函数中使用synchronized 块

如果我们试图在构造函数之前放置synchronized关键字,编译器会说"错误:此处不允许使用修饰符 synchronized"。

示例

public class SynchronizedConstructorTest {
      // 同步构造函数的声明
      public synchronized SynchronizedConstructorTest() {
         System.out.println("Synchronized Constructor");
      }
      public static void main(String args[]) {
         SynchronizedConstructorTest test = new SynchronizedConstructorTest();
      }
}

输出

SynchronizedConstructorTest.java:3: error: modifier synchronized not allowed here
public synchronized SynchronizedConstructorTest() {
^
1 error

相关文章