社区
Java
帖子详情
2020-11-12:java中as-if-serial语义和happen-before语义有什么区别?
福大大架构师每日一题
2020-11-12 07:06:54
2020-11-12:java中as-if-serial语义和happen-before语义有什么区别?#福大大#
...全文
2725
1
打赏
收藏
2020-11-12:java中as-if-serial语义和happen-before语义有什么区别?
2020-11-12:java中as-if-serial语义和happen-before语义有什么区别?#福大大#
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
KeepSayingNo
2020-11-12
打赏
举报
回复
as-if-serial语义保证单线程内程序的执行结果不被改变,happens-before关系保证正确同步的多线程程序的执行结果不被改变。
浅谈
java
指令重排序的问题
下面小编就为大家带来一篇浅谈
java
指令重排序的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java
并发-内存模型h
app
en
s before,as-if-
se
ria
l
文章目录什么是as-if-
se
ria
lH
app
en
s-Before 规则
Java
内存模型底层怎么实现的?as-if-
se
ria
l与h
app
en
s-before的
区别
什么是as-if-
se
ria
l As-If-
Se
ria
l 理解 参考URL: https://www.cnblogs.com/jiuya/p/10791903.html as-if-
se
ria
l
语义
的意思指: 不管怎么重排序(编译器和处理器为了提高并行度),(单线程)程序的执行结果不会改变。 编译器、runtime和处理器都必须遵守 as-if
h
app
en
-before原则和as-if-
se
ria
l
语义
一、as-if-
se
ria
l as-if-
se
ria
l
语义
的意思是:不管怎么重排序(编译器和处理器为了提供并行度),(单线程)程序的执行结果不能被改变。编译器,runtime和处理器都必须遵守as-if-
se
ria
l
语义
。as-if-
se
ria
l
语义
把单线程程序保护了起来,遵守as-if-
se
ria
l
语义
的编译器,runtime和处理器共同为编写单线程程序的程序员创建了一个幻觉:单线程程...
h
app
en
s-before和as-if-
se
ria
l
语义
as-if-
se
ria
l as-if-
se
ria
l
语义
的意思是: 不管怎么重排序(编译器和处理器为了提高并行度会进行重排序优化),单线程程序的执行结果不能被改变。 编译器、runtime和处理器都必须遵守as-if-
se
ria
l
语义
,所以编译器和处理器不会对存在数据依赖关系的操作做重排序,因为这种重排序会改变执行结果。 as-if-
se
ria
l
语义
把单线程保护起来,遵守as-if-
se
ria
l
语义
的编译器,runtime和处理器共同为编写单线程程序的程序员创建里一个幻觉:单线程程序是按照程序的顺序来执行的
深入解析 as-if-
se
ria
l 与 h
app
en
-before:
Java
内存模型的核心规则
无论编译器和处理器如何优化(如指令重排序),
Java
51,411
社区成员
86,004
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章