java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)
Posted brave-sailor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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实现高效并发处理 (只初始化一次的功能要求)的主要内容,如果未能解决你的问题,请参考以下文章
Java volatile 是不是会阻止缓存或强制执行直写缓存?