class A {
private A(){
//초기화
}

public static A getInstance() {
return LazyHolder.INSTANCE;
}

public static void doSomething() {
//할거
}

private static class LazyHolder() {
private static final class INSTANCE = new A();
}
}

이런 코드가 있을 때

클래스 생성에는 스레드간의 안전성을 보장해준다고하는데

서로 다른 두 스레드가 doSomething()을 호출할 때에도 스레드간의 안전성이 보장되나요?

아니면 뭐 할때마다 싱크로나이즈드나 록 걸어야됨?