volatile是Java提供的一种轻量级的同步机制
1.起因
今天想把一个复杂的类抽成,多个类,这样类的功能单一,条理会更加清晰,但是这个类采用父方法采用了for循环,如下
A类,调用
for(){B类.do()方法
}
B类
do方法{平行逻辑方法1;平行逻辑方法2;平行逻辑方法3;
}
每个方法都是不同的逻辑,互不干扰,所以想给每个复杂的方法抽成一个类,但是我要在B类for循环里创建对象,但是开销会很大哦,所以我采用双检锁/双重校验锁
单例模式(很简单):参考:http://www.runoob.com/design-pattern/singleton-pattern.html
但是这里使用了volatile
关键字,知其然,知其所以然,所以我决定了解这个东东
2.基本概念
概念:Java 内存模型中的可见性、原子性和有序性。
可见性
:
可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我
volatile是Java提供的一种轻量级的同步机制相关推荐
- 【ASP.NET教程-WP教程15】ASP.NET Web Pages - C# 和 VB 实例简单而强大的开发框架,可用于构建动态的、基于Web的应用程序。它提供了一种轻量级的方式来创建和管理网页
ASP.NET Web Pages - C# 和 VB 实例 ASP.NET Web Pages 是一种简单而强大的开发框架,可用于构建动态的.基于Web的应用程序.它提供了一种轻量级的方式来创建和管 ...
- java提供的4种基本控制语句结构_Java基础6-控制语句
一.控制语句的种类 java控制语句主要分为7种 1.控制选择结构语句 if, if else switch 2.控制循环结构语句 for while do while 3.改变控制语句顺序 brea ...
- Java提供的几种线程池总结
Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程 newFix ...
- Java多线程之线程同步机制(锁,线程池等等)
Java多线程之线程同步机制 一.概念 1.并发 2.起因 3.缺点 二.三大不安全案例 1.样例一(模拟买票场景) 2.样例二(模拟取钱场景) 3.样例三(模拟集合) 三.同步方法及同步块 1.同步 ...
- Java多线程(4)--线程的同步解决线程安全问题
多线程出现安全问题 问题的原因: 当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来执行,导致共享数据的错误. 解决办法: 对多条操作共享数据的语 ...
- 详解JVM内存管理与垃圾回收机制5 - Java中的4种引用类型
在Java语言中,除了基础数据类型的变量以外,其他的都是引用类型,指向各种不同的对象.在前文我们也已经知道,Java中的引用可以是认为对指针的封装,这个指针中存储的值代表的是另外一块内存的起始地址(对 ...
- Java中的八种包装类
文章目录 为什么需要包装类? Java提供的八种包装类 装箱和拆箱 整数型常量池 Integer中的常用方法 int .Integer.String之间的相互转换 为什么需要包装类? 读以下程序: p ...
- 提供第三种代码生成方式——通过自定义BuildProvider为ASP.NET提供代码生成
2019独角兽企业重金招聘Python工程师标准>>> 之前写了一些关于代码生成的文章,提供了两种不同方式的代码生成解决方案,即CodeDOM+Custom Tool和T4.对于AS ...
- Java的互斥同步机制
Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock. synchronized 1 ...
最新文章
- 你听过Oracle中rownum用法吗?
- git 小乌龟 更新分支_时光机--git--现代程序员必备的星舰
- 处理js事件时,获取键盘数字注意
- linux 中文乱码问题的解决方法
- Linux配置keepalived实现nginx高可用安装过程记录
- 报文解析_104规约报文结构解析
- SQL Server 影响dbcc checkdb的 8 种因素
- 美国罪案故事第一季/全集American Crime Story迅雷下载
- CF758 D. Ability To Convert 细节处理字符串
- 设备底座几个常见固定方式
- 一种推理优化新思路,对特征图进行[随机采样-插值]
- element-ui表单校验
- html动态绑定树形菜单,jQuery ztree实现动态树形多选菜单
- * Redis —— Scan、SScan、HScan、ZScan
- html 简繁转换 批量,[推荐]几行代码轻松搞定网页的【简繁转换】
- 演化策略(Evolutionary Strategies)
- 从零开始手写 VIO
- 英语口语练习六十二之9种英语表达“后悔”
- 人人都有发言权的新媒体时代 内容审核需亮剑
- python中pip的使用 安装 升级 卸载包
热门文章
- AMD中国:没有对拼多多及其平台上任何店铺授权
- 人走茶凉!三星关闭最后一家中国手机工厂 因为打不过其他国产厂商?
- 腾讯音乐2019Q2财报:在线音乐付费用户达到创纪录的3100万
- 全系麒麟810+超强夜拍 荣耀9X正式发布:1399元起
- 华为回应“锁屏广告”事件:非官方所为
- 苹果挖迪士尼墙脚:喜获视频服务总监
- 魅族管理层换血?官方回应:信息被错误解读 黄章仍为最大股东
- 买写真送手机系列 小米9王源限量版预售将在这些小米之家开启
- 小米变了?红米Note7今日开售 坚持了9分36秒...
- 在网页中通过百度地图查看某地的经纬度