当前位置: 首页 > news >正文

镇江软件公司南宁网站建设优化案例

镇江软件公司,南宁网站建设优化案例,兰州网站建设公司,江苏省住房城乡建设厅网站首页volatile是一种轻量级的同步机制,它相比于synchronized这种重量级锁更轻量,因为它不会造成线程上下文的切换,但是同步性更差,volatile关键字可以保证变量的可见性以及禁止指令重排序。 可见性 可见性指一个值被线程修改了&#…

volatile是一种轻量级的同步机制,它相比于synchronized这种重量级锁更轻量,因为它不会造成线程上下文的切换,但是同步性更差,volatile关键字可以保证变量的可见性以及禁止指令重排序。

可见性

可见性指一个值被线程修改了,其余的线程能立刻看见被修改的值,使用volatile关键字修饰的变量可以保证可见性。

如何保证的可见性?
首先来看看Java的内存模型

每个线程都有自己的工作内存,这个工作内存是每个线程独占的,对其余线程是不可见的。
主内存中存储的时共享变量,线程想要修改共享变量的值时,是不能直接去主内存修改的,而是要同步到自己的工作内存中修改,之后再同步到主内存中,这里通过cas来保证线程安全。

如果是volatile修饰的变量,那么每个线程只能去主内存读取这个变量,而不能读取自己的工作内存,从而保证了可见性。

有序性

有序性指程序按照代码先后顺序执行,在java中,为了效率编译器可能会将指令重排序,也就是不按照代码顺序执行,指令重排序对于单线程是没有影响的,但是在多线程下有可能会出错。

比如说下面这段代码,这是使用双重判定锁实现单例模式模式的原理。

其中去new Singleton()这一步不是原子性的,可以分为三步:

  1. 为 uniqueInstance 分配内存空间
  2. 初始化 uniqueInstance
  3. 将 uniqueInstance 指向分配的内存地址

如果不禁止指令重排序的话,那么有可能线程1在new Singleton()的时候,先执行第三步,然后此时线程2来判断uniqueInstance不为null,直接return,就返回了一个没有初始化的对象,所以这里用了volatile来禁止指令重排序。

http://www.dtcms.com/a/506732.html

相关文章:

  • 火电厂VR安全培训系统有哪些:广州华锐互动构建 “安全元宇宙” 生态
  • 【计算机科学与应用】基于多光谱成像与边缘计算的物流安全风险预警模式及系统实现
  • 分布式架构未来趋势:从云原生到智能边缘的演进之路
  • 云原生系列Bug修复:Docker镜像无法启动的终极解决方案与排查思路
  • 元宇宙赋能智慧城市:重构城市治理与生活新生态
  • 算法笔试题具体在考什么领域的知识?计算机科学领域的基础:数据结构,计算机组成原理,操作系统,计算机网络
  • HarmonyOS安全与隐私:权限申请与敏感数据保护实战
  • 做促销的网站珠海网站建设厚瑜
  • 基于STM32F103ZET6实现6路舵机控制
  • 【案例实战】鸿蒙分布式智能办公应用的架构设计与性能优化
  • 嘉兴网站排名优化价格环保网站 中企动力建设
  • 网站注册页面html网站建设邀标书
  • spring AOP失效的原因
  • 阿里云国际代理:阿里云备份如何保障数据安全?
  • Elasticsearch面试精讲 Day 25:Elasticsearch SQL与数据分析
  • Spring Boot 3零基础教程,WEB 开发 Thymeleaf 总结 热部署 常用配置 笔记44
  • 从概念到代码:4A架构(业务架构、数据架构、应用架构、技术架构)全景落地指南
  • 深入解析 ZeroMQ 请求-应答模式:服务端实现与全链路测试指南 || 测试ZMQ重连重试机制
  • 五行八卦知识介绍和科学的关系
  • 做公司网站客户群体怎么找数据库怎么存储wordpress
  • 拉力猫指纹浏览器配置 Novproxy 代理 IP 教程:从参数设置到连接验证全流程
  • 深圳购物网站建设公司wordpress插件无法安装
  • 内网用户无法通过公网IP访问内网服务器:NAT回流问题
  • 【高并发服务器】Socket套接字类 Channel事件管理类设计与实现
  • Linux服务器编程实践52-SO_LINGER选项:控制close关闭TCP连接的行为
  • 【Docusaurus】子路径配置后,build 报错 Error: Unable to build website for locale en
  • wordpress 网站变慢深圳龙华邮政编码是多少
  • 【服务器】服务器被攻击植入了挖矿病毒,CPU一直占用100%,@monthly /root/.cfg/./dealer病毒清除
  • DevExpress WinForms v25.1亮点 - 电子表格组件、富文档编辑器全新升级
  • SVN冲突处理相关,标识 C 语言源文件(.c)的不同版本或冲突状态