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帮助文档:
转载于:https://www.cnblogs.com/Free-Thinker/p/6216708.html
java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)相关推荐
- java中volatile关键字的含义_Java里volatile关键字是什么意思
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...
- Java趣谈——如何构建一个高效且可伸缩的缓存
Java趣谈--如何构建一个高效且可伸缩的缓存 本集概要: 怎样构建一个线程安全而又高效.可伸缩的缓存? 怎样利用设计模式,把缓存做成通用的工具? 除了synchronize和volatile,我们还 ...
- java中volatile
volatile用来修饰变量.Java 语言中的 volatile 变量可以被看作是一种 "程度较轻的 synchronized":与 synchronized 块相比,volat ...
- Java中 volatile 关键字的最全总结,快给自己查缺补漏吧!
作者:老鼠只爱大米 来源:blog.csdn.net/u012723673/article/details/80682208 一.简介 volatile是Java提供的一种轻量级的同步机制.Java ...
- 关于java的volatile
关于java的volatile 记得早前本人写过一篇关于C关键字volatile一点认知文章 由于最近因业务需要一直在做与java相关的开发.故研究了一下java里的volatile这里与C里的大致相 ...
- 认识Java中volatile关键字
概念 1.可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉.通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情.为了确保多个线程之间对内 ...
- java关键字 valotile_Java内存模型-jsr133规范介绍,java中volatile关键字的含义
最近在看<深入理解Java虚拟机:JVM高级特性与最佳实践>讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范. 系统的看了jsr 133规范的前面几 ...
- Java基础——volatile关键字解析
简介 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情.由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内 ...
- Java中 volatile 关键字的最全总结,赶快给自己查缺补漏吧!
作者:老鼠只爱大米 blog.csdn.net/u012723673/article/details/80682208 一.简介 volatile是Java提供的一种轻量级的同步机制.Java 语言包 ...
最新文章
- 第七篇 JVM核心机制之JVM运行和类加载全过程(二)
- matlab的syms无法在函数中使用_Python函数中使用@
- pgsql 运行状态 采集脚本
- jqgrid常用操作
- 娱乐社交,玩票大的!2021网易云信“融合通信开发者大赛”正式开赛!
- 系统性能调优(5)----Java循环与字符串代码优化
- ecshop 广告设置
- 二、项目运行环境【PMP 】
- python中支持双向索引的有哪些_解决Python中展示tkinter不支持的图片格式
- Linux Shall命令入门
- 阿酷三合一版_阿酷插件下载|3dmax阿酷插件下载 v3.2 开源版 - 比克尔下载
- PDF文件打印受到限制?
- 【Android 开发入门】我为什么要在Android找工作越来越难的时候开始学习它
- 4.2 存储器读写指令的发射与执行2
- kubectl命令的使用、滚动更新
- 什么是无线网桥?全方位解析无线网桥及应用场景
- 课时10:列表:一个打了激素的数组1
- sap exceptions处理
- 为什么九大头部APP都选择U-APM 应用性能监控平台?
- 解决:Uncaught (in promise) TypeError: Failed to fetch 的问题
热门文章
- win10远程登陆deepin xrdp
- 我的docker随笔24:docker产生coredump文件
- linux时区的几个代码片段
- display none的元素重新展示如何撑开页面_关于元素的浮动你了解多少
- 【java】Java中TypeReference用法说明
- 【java】Java 动态调试技术原理及实践
- 95-862-045-源码-runtime-blob-BlobService
- 【Elasticsearch】推荐一个同步Mysql数据到Elasticsearch的工具
- 【Elasticsearch】腾讯万亿级 Elasticsearch 内存效率提升解密 源码级别 性能优化
- 【Kafka】【未解决】kafka反序列化数据报错jackson2 JsonParseException: Invalid UTF-8 middle byte 0xc0