构造器可以在 Java 中同步吗?


,在 Java 中无法同步构造器。JVM 确保在给定时间点,只有一个线程可以调用构造器。这就是为什么无需声明构造器为synchronized并且在 Java 中是非法的。但是,我们可以在构造器内部使用synchronized 块

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

示例

public class SynchronizedConstructorTest {
      // declaration of synchronized constructor
      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

更新于: 02-Jul-2020

2K+ 次浏览

开启你的 职业生涯

完成本课程即可获得认证

开始吧
广告
© . All rights reserved.