우리가 싱턴트 클래스를 생성하는 동안 우리가 알고있는 것처럼 우리는 전체 메소드를 동기화 된 것으로 만들거나 객체의 생성을 책임지는 명령문의 블록만을 동기화로 만듭니다. 그러나이 두 접근법 중 더 좋고 왜?동기화 된 메서드 또는 동기화 된 블록 : java에서 singleton 클래스를 작성하는 동안 어느 쪽이 더 낫습니까?
접근 한
public static A getA(){
if (obj == null){
synchronized(Singleton.class) {
if (obj == null) {
obj = new Singleton();//instance will be created at request time
}
}
}
return obj;
}
접근법 2
public synchronized static A getA(){
if (obj == null){
obj = new Singleton();//instance will be created at request time
}
return obj;
}
싱글 톤이 좋지 않기 때문에 아무 문제가 없습니다. –
@SleimanJneidi 왜 싱글 톤이 좋지 않은가요? –
나중에 알겠지만이 두 가지 중 어떤 것이 더 나은지 설명해 주시겠습니까? –