public class Singleton {
private static Singleton singleton = new
Singleton();
private Singleton() {
System.out.println("Sington Class의 인스턴스 생성!");
}
public static Singleton getInstance() {
return singleton;
}
}
private Singleton() {
System.out.println("Sington Class의 인스턴스 생성!");
}
public static Singleton getInstance() {
return singleton;
}
}
public class Main extends Thread {
public static void main(String[] args) {
System.out.println("Start.");
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
if (obj1 == obj2){
System.out.println("obj1 == obj2");
}
else {
System.out.println("obj1 != obj2");
}
}
}
public static void main(String[] args) {
System.out.println("Start.");
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
if (obj1 == obj2){
System.out.println("obj1 == obj2");
}
else {
System.out.println("obj1 != obj2");
}
}
}
=======================================
public class Singleton {
private static Singleton singleton = null;
private Singleton() {
System.out.println("인스턴스 생성...");
slowdown();
}
public static Singleton getInstance() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
private void slowdown() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
}
}
}
private static Singleton singleton = null;
private Singleton() {
System.out.println("인스턴스 생성...");
slowdown();
}
public static Singleton getInstance() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
private void slowdown() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
}
}
}
public class Main extends Thread {
public static void main(String[] args) {
System.out.println("Start.");
new Main("A").start();
new Main("B").start();
new Main("C").start();
System.out.println("End.");
}
public void run() {
Singleton obj = Singleton.getInstance();
System.out.println(getName() + ": obj = " + obj);
}
public Main(String name) {
super(name);
}
}
public static void main(String[] args) {
System.out.println("Start.");
new Main("A").start();
new Main("B").start();
new Main("C").start();
System.out.println("End.");
}
public void run() {
Singleton obj = Singleton.getInstance();
System.out.println(getName() + ": obj = " + obj);
}
public Main(String name) {
super(name);
}
}
오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터
(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)
댓글 없음:
댓글 쓰기