자바 싱글톤, 쓰레드 예제
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
System.out.println("Sington Class의 인스턴스 생성!");
}
public static Singleton getInstance() {
return singleton;
}
}
private static Singleton singleton = new 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,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)
[개강확정강좌]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주말]
[10/26]C#,ASP.NET마스터
[10/27]JAVA&WEB프레임워크실무과정
[평일야간]
[10/17]SQL초보에서실전전문가까지
[10/17]자바초보에서안드로이드까지
[주간]
[10/21]Spring3.X, MyBatis, Hibernate실무과정
[주말]
[10/26]C#,ASP.NET마스터
[10/27]JAVA&WEB프레임워크실무과정
[평일야간]
[10/17]SQL초보에서실전전문가까지
[10/17]자바초보에서안드로이드까지
[주간]
[10/21]Spring3.X, MyBatis, Hibernate실무과정
댓글 없음:
댓글 쓰기