java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)

最近碰到一个这样的功能要求:怎么在一个类里面,实现高效并发处理下只可以初始化一次的方法?

实现方式:

1)volatile方式:

/**
 * Created by Chengrui on 2015/7/28.
 */
public class MyThread {

    private static volatile boolean initialized = false;

    public void init(){
        if(initialized == false){
            initialized = true;
            //here is the initialization code
        }
    }

}

2)AtomicBoolean方式:

/**
 * Created by Chengrui on 2015/7/28.
 */
public class MyThread {

    private static AtomicBoolean initialized = new AtomicBoolean(false);

    public void init(){
        if(initialized.compareAndSet(false, true)){
            //here is the initialization code
        }
    }

}
附:AtomicBoolean帮助文档:

java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)_第1张图片


java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)_第2张图片

你可能感兴趣的:(Java)