Java/공부

자바 싱글턴

므시칸곰틔군 2018. 4. 9. 13:44

1.

public class Singleton {


private static Singleton singleton = new Singleton();

private Singleton() {

// TODO Auto-generated constructor stub

}

public static Singleton getInstance() {

return singleton;

}

}



2.

public class Singleton {


private static Singleton singleton = null;


private Singleton() {

// TODO Auto-generated constructor stub

}


// 해당 인스턴스는 완벽한 싱글턴이 안된다. 스레드 타이밍에 여러개의 인스턴스가생길 수 있다.

// public static Singleton getInstance() {

// if (singleton == null) {

// singleton = new Singleton();

// }

// return singleton;

// }


public static synchronized Singleton getInstance() {

if (singleton == null) {

singleton = new Singleton();

}

return singleton;

}

}

2번의 경우 객체를 생성 할 때 문제가 생성될 수 있기에 synchronized써서 완전한 싱글턴으로 만들어야 한다.