JMM的内存可见性保证

Java程序的 内存可见性保证 可以分为下列3类

1)单线程程序

单线程程序不会出现内存可见性问题。
编译器、runtime、处理器会共同确保单线程程序的执行结果与该程序在顺序一致性模型中的执行结果相同。

2)正确同步的多线程程序

Further Reading :JMM对正确同步的多线程程序的内存一致性的保证

3)未同步/未正确同步的多线程程序

对于未同步或未正确同步的多线程程序,JMM不保证执行结果与该程序在顺序一致性模型中的执行结果一致,JMM只提供最小安全性保障线程执行时读取到的值,要么是之前某个线程写入的值,要么是默认值(0,Null,False),JMM保证线程读操作读取到的值不会无中生有(Out Of Thin Air)的冒出来

为了实现最小安全性,JVM在堆上分配对象时,首先会对内存空间进行清零,然后才会在上面分配对象(JVM内部会同步这两个操作)。因此,在已清零的内存空间(Pre-zeroed Memory)分配对象时,域的默认初始化已经完成了。

在这里插入图片描述
-----------------------------------------------------------------------------摘自 书名:Java并发编程的艺术 作者:方腾飞;魏鹏;程晓明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8改进 | 2023注意力篇 | HAttention(HAT)超分辨率重建助力小目标检测 (全网首发)

一、本文介绍 本文给大家带来的改进机制是HAttention注意力机制,混合注意力变换器(HAT)的设计理念是通过融合通道注意力和自注意力机制来提升单图像超分辨率重建的性能。通道注意力关注于识别哪些通道更重要,而自注意力则关注于图…

Redis cluster集群设置密码

Redis cluster集群设置密码 1 备份数据 # 链接redis集群,执行rdb快照 bgsave # 备份dump.rdb文件 cp /data/redis/cluster/dump.rdb /data/redis/cluster/backup/dump.rdb.202312202 设置密码 必须保证每个节点的密码保持一致,不然 Redirected 的时候会失败 2.1…

C : DS二叉排序树之删除

Description 给出一个数据序列,建立二叉排序树,并实现删除功能 对二叉排序树进行中序遍历,可以得到有序的数据序列 Input 第一行输入t,表示有t个数据序列 第二行输入n,表示首个序列包含n个数据 第三行输入n个数据…

Python 元组完全指南 1

元组用于在单个变量中存储多个项目。 mytuple ("apple", "banana", "cherry") 元组是 Python 中的 4 种内置数据类型之一,用于存储数据集合,另外还有列表、集合和字典,它们都具有不同的特性和用途。元组是有…

分布式锁解决方案之数据库乐观锁实现的分布式锁

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 分布式锁解决方案之数据库乐观锁实现的分布式锁 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目…

cpulimit设计理念及其思考

背景 前几天,同事咨询了我一个问题:IO占用能和cpu使用率那样,有方法来控制吗?这个问题的背景是因为客户提了两个需求,如下: 说实话,针对这两点需求,我的第一反应是有一点思路&#…

Linux 下 GCC 编译共享库控制导出函数的方法

通过一些实际项目的开发,发现这样一个现象,在 Windows 下可以通过指定 __declspec(dllexport) 定义来控制 DLL(动态链接库)中哪些函数可以导出,暴露给其他程序链接使用,哪些函数是 DLL 内部自己使用&#x…

复习linux——ssh服务

SSH服务 ssh:安全的远程登录,实现加密通信,代替传统的telnet协议 具体的软件实现 openssh:ssh协议的开源实现 dropbear:另一个ssh协议的开源项目的实现 ssh公钥交换原理 客户端发起连接请求——客户端得到服务端的公…

PIC单片机项目(5)——基于PIC16F877A的多功能防盗门

1.功能设计 本次设计的功能如下:如果红外对管检测到有人经过,LCD1602可以显示,我设计的是显示字符串“someone”。 如果有人强行破门,FSR402压力传感器会检测到压力过大,然后触发蜂鸣器报警,LCD1602也显示“…

物奇平台消息发收功能实现

物奇平台消息发收功能实现 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 1 外设中断消息发送方法

实验4.2 默认路由和浮动静态路由的配置

实验4.2 默认路由和浮动静态路由的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.路由器的基本配置。2.配置默认路由,实现全网互通。3.配置浮动静态路由,实现链路备份。 六、任务验收七、任务小结八、知识链接1.默认路…

SpringBoot整合SpringDataJpa QueryDSL和原生态SQL

1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…

【1) 40个powershell命令,掌握它们让你成为新一代命令行大神 2) mkdir, rmdir commands】

40 commands of poershell & mkdir, rmdir I) 40个powershell命令&#xff0c;掌握它们让你成为新一代命令行大神1.1&#xff09; URL1.2&#xff09;Basic 40 commands of powershell1.2.1) get-command1.2.1.1&#xff09;describe1.2.1.2&#xff09;mkdir dir_name, rm…

2023 英特尔On技术创新大会直播 |AI小模型更有性价比

前言&#xff1a; 今年是引爆AI的一年&#xff0c;从幼儿园的小朋友到80岁的老奶奶都认识AI&#xff0c;享受AI带来的便捷&#xff0c;都在向市场要智能&#xff0c;但AI的快速发展离不开底层硬件设施的革新。 英特尔是全球知名的半导体公司&#xff0c;专注于计算机处理器和芯…

pip基本操作指令大全

以下是一些pip的基本操作指令及其用途&#xff1a; 安装包&#xff1a; pip install package_name 安装指定的Python包。如果你想安装特定版本&#xff0c;可以这样指定&#xff1a; pip install package_nameversion_number 升级包&#xff1a; pip install --upgrade pack…

JavaScript 从基础到进阶 02:控制流程与函数

控制流程与函数 条件语句1. if语句2. else if语句3. switch语句 循环语句1. for循环2. while循环3. do...while循环 控制流程的关键概念1. break语句2. continue语句3. 标签&#xff08;label&#xff09; 总结函数的定义1. 函数声明2. 函数表达式 函数的调用函数的参数形参和实…

Goby 漏洞发布| Apusic 应用服务器 createDataSource 远程代码执行漏洞

漏洞名称&#xff1a;Apusic 应用服务器 createDataSource 远程代码执行漏洞 English Name&#xff1a;Apusic Application Server loadTree Remote Code Execution Vulnerability CVSS core: 9.8 影响资产数&#xff1a; 31410 漏洞描述&#xff1a; 金蝶 Apusic 应用服务…

死锁的原理、产生条件及避免死锁的方法,银行家算法的简介和实现

死锁的原理及避免死锁的方法 死锁的原理 死锁是指在多个进程或线程之间&#xff0c;由于彼此互相持有对方所需资源而无法继续执行的情况。死锁发生的原因通常是由于多个进程同时请求资源&#xff0c;但由于资源分配不当或者竞争条件等问题&#xff0c;导致彼此之间陷入僵局无…

第三节TypeScript 基础类型

1、typescript的基础类型 如下表&#xff1a; 数据类型 关键字 描述 任意类型 any 生命any的变量可以赋值任意类型的值 数字类型 number 整数或分数 字符串类型 string 使用单引号&#xff08;‘’&#xff09;或者双引号&#xff08;“”&#xff09;来表示字符串…

企业数字化转型如何影响企业 ESG 表现 —来自中国上市公司的证据(数据复现+代码)

数据来源&#xff1a;自主整理 时间跨度&#xff1a;2010-2020年 数据范围&#xff1a;中国沪深 A 股上市公司 数据指标&#xff1a; 类型 变量 符号 变量定义 证券代码 stkcd 年份 year 股票简称 name 被解释变量 ESG ESG 华证ESG季度评级赋值1-9分&#xff0c;取…