Java中静态块的线程安全

假设我有一些Java代码:

公共类SomeClass{
静止的{
私人最终双PI=3.14;
私人最终双_常数=5.76;
私人最终双一些其他常数=756.33;
}
//其他同学
}

如果一个线程正在初始化SomeClass的类对象,并且在第二个线程想要加载SomeClass的类时,在静态块中初始化值的中间,静态块会发生什么?即使第一个线程没有完成初始化,第二个线程是否也会忽略它?还是发生了别的事情

如果第一个线程尚未完成初始化SomeClass,第二个线程将阻塞

Java语言规范第12.4.2节对此进行了详细说明

发表评论