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

来源:互联网 发布:虚拟主机绑定域名 编辑:程序博客网 时间:2024/05/22 11:50

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

实现方式:

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帮助文档:




0 0