java – 构造函数中的synchronized块有什么用?

我们不能使构造函数同步,但可以在内部构造函数中编写同步.在什么情况下这样的要求会来?
我很开心.

package com.simple;
public class Test {
    public Test() {
        synchronized (this) {
            System.out.println("I am called ...");
        }
    }

    public static void main(String[] args) {
        Test test=new Test();   
        System.out.println(""+test);
    }

    @Override
    public String toString() {
        return "Test []";
    }
}
好吧,你可以在构造函数中启动一个新线程.这将是非常不寻常的 – 当然在您提供的代码中它将毫无意义 – 但它可能会发生.

语言通常不会试图找到你可能做的每件事都没有意义 – 它会导致非常复杂的语言规范.语言用户也必须有一定程度的思考……

翻译自:https://stackoverflow.com/questions/15021735/what-is-the-use-of-synchronized-block-inside-constructor

转载注明原文:java – 构造函数中的synchronized块有什么用?