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

实现方式:

1)volatile方式:

[java] view plaincopy
  1. /**
  2. * Created by Chengrui on 2015/7/28.
  3. */
  4. public class MyThread {
  5. private static volatile boolean initialized = false;
  6. public void init(){
  7. if(initialized == false){
  8. initialized = true;
  9. //here is the initialization code
  10. }
  11. }
  12. }

2)AtomicBoolean方式:

[java] view plaincopy
  1. /**
  2. * Created by Chengrui on 2015/7/28.
  3. */
  4. public class MyThread {
  5. private static AtomicBoolean initialized = new AtomicBoolean(false);
  6. public void init(){
  7. if(initialized.compareAndSet(false, true)){
  8. //here is the initialization code
  9. }
  10. }
  11. }

附:AtomicBoolean帮助文档:

转载于:https://www.cnblogs.com/Free-Thinker/p/6216708.html

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

  1. java中volatile关键字的含义_Java里volatile关键字是什么意思

    在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...

  2. Java趣谈——如何构建一个高效且可伸缩的缓存

    Java趣谈--如何构建一个高效且可伸缩的缓存 本集概要: 怎样构建一个线程安全而又高效.可伸缩的缓存? 怎样利用设计模式,把缓存做成通用的工具? 除了synchronize和volatile,我们还 ...

  3. java中volatile

    volatile用来修饰变量.Java 语言中的 volatile 变量可以被看作是一种 "程度较轻的 synchronized":与 synchronized 块相比,volat ...

  4. Java中 volatile 关键字的最全总结,快给自己查缺补漏吧!

    作者:老鼠只爱大米 来源:blog.csdn.net/u012723673/article/details/80682208 一.简介 volatile是Java提供的一种轻量级的同步机制.Java ...

  5. 关于java的volatile

    关于java的volatile 记得早前本人写过一篇关于C关键字volatile一点认知文章 由于最近因业务需要一直在做与java相关的开发.故研究了一下java里的volatile这里与C里的大致相 ...

  6. 认识Java中volatile关键字

    概念 1.可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉.通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情.为了确保多个线程之间对内 ...

  7. java关键字 valotile_Java内存模型-jsr133规范介绍,java中volatile关键字的含义

    最近在看<深入理解Java虚拟机:JVM高级特性与最佳实践>讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范. 系统的看了jsr 133规范的前面几 ...

  8. Java基础——volatile关键字解析

    简介 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情.由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内 ...

  9. Java中 volatile 关键字的最全总结,赶快给自己查缺补漏吧!

    作者:老鼠只爱大米 blog.csdn.net/u012723673/article/details/80682208 一.简介 volatile是Java提供的一种轻量级的同步机制.Java 语言包 ...

最新文章

  1. 第七篇 JVM核心机制之JVM运行和类加载全过程(二)
  2. matlab的syms无法在函数中使用_Python函数中使用@
  3. pgsql 运行状态 采集脚本
  4. jqgrid常用操作
  5. 娱乐社交,玩票大的!2021网易云信“融合通信开发者大赛”正式开赛!
  6. 系统性能调优(5)----Java循环与字符串代码优化
  7. ecshop 广告设置
  8. 二、项目运行环境【PMP 】
  9. python中支持双向索引的有哪些_解决Python中展示tkinter不支持的图片格式
  10. Linux Shall命令入门
  11. 阿酷三合一版_阿酷插件下载|3dmax阿酷插件下载 v3.2 开源版 - 比克尔下载
  12. PDF文件打印受到限制?
  13. 【Android 开发入门】我为什么要在Android找工作越来越难的时候开始学习它
  14. 4.2 存储器读写指令的发射与执行2
  15. kubectl命令的使用、滚动更新
  16. 什么是无线网桥?全方位解析无线网桥及应用场景
  17. 课时10:列表:一个打了激素的数组1
  18. sap exceptions处理
  19. 为什么九大头部APP都选择U-APM 应用性能监控平台?
  20. 解决:Uncaught (in promise) TypeError: Failed to fetch 的问题

热门文章

  1. win10远程登陆deepin xrdp
  2. 我的docker随笔24:docker产生coredump文件
  3. linux时区的几个代码片段
  4. display none的元素重新展示如何撑开页面_关于元素的浮动你了解多少
  5. 【java】Java中TypeReference用法说明
  6. 【java】Java 动态调试技术原理及实践
  7. 95-862-045-源码-runtime-blob-BlobService
  8. 【Elasticsearch】推荐一个同步Mysql数据到Elasticsearch的工具
  9. 【Elasticsearch】腾讯万亿级 Elasticsearch 内存效率提升解密 源码级别 性能优化
  10. 【Kafka】【未解决】kafka反序列化数据报错jackson2 JsonParseException: Invalid UTF-8 middle byte 0xc0