2013년 10월 22일 화요일

자바 싱글톤, 쓰레드 예제 public class 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 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) { } } } 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); } } [출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=597 JAVA ORACLE iPhone/Android .NET 표준웹/HTML5 채용/취업무료교육 초보자(재학생)코스 Spring3.X, MyBatis, Hibernate실무과정 총 5일 35시간 11-04 자바초보에서안드로이드까지 총 18일 54시간 10-22 Spring3.X, MyBatis, Hibernate실무과정 총 12일 36시간 10-25 JAVA&WEB프레임워크실무과정 총 33일 99시간 10-31 자바초보에서안드로이드까지 총 8일 56시간 10-26 Spring3.X, MyBatis, Hibernate실무과정 총 5일 35시간 10-26 JAVA&WEB프레임워크실무과정 총 14일 98시간 10-27

자바 싱글톤, 쓰레드 예제

public class 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 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) {     
        }                                      
    }                                          
}
 
 
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);
    }
}

댓글 없음:

댓글 쓰기