私がいくつかのJavaコードを持っているとしましょう:
public class SomeClass {
static {
private final double PI = 3.14;
private final double SOME_CONSTANT = 5.76;
private final double SOME_OTHER_CONSTANT = 756.33;
}
//rest of class
}
スレッドがSomeClassのClass
オブジェクトを初期化していて、2番目のスレッドがSomeClassのオブジェクトを再度ロードしたいときに静的ブロックの値を初期化している途中の場合、Class
静的ブロックはどうなりますか?最初のスレッドが実行されていなくても、2番目のスレッドはすでに初期化されていると想定してそれを無視しますか?それとも何か他のことが起こりますか?