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