'Volatile'에 해당되는 글 1건

  1. 2015.03.17 volatile 키워드 vs synchronized

volatile 키워드는 멀티thread시에 도움이 된다.

 1. 읽고 쓰기에 대한 원자성. ( byte단위의 원자화는 보장함. alignment는 맞춰줌. 

 2. 컴파일러의 임의 리오더링을 방지.



반면,

synchronized는 블록으로 묶인 부분 혹은 변수를 원자화(makes atomic ) 함.


<Wikipedia singleTon 예제>

public class SingletonDemo {

    private static volatile SingletonDemo instance = null;

    private SingletonDemo() {  } 

    public static SingletonDemo getInstance() {
        if (instance == null) {
            synchronized (SingletonDemo.class){
                if (instance == null) {
                    instance = new SingletonDemo();
                }
            }
        }
        return instance;
    }

}


Posted by yongary
,