立即注册找回密码

海安热线

图文大播报

查看: 86508|回复: 0

如皋java培训机构+++Java内存模型之重排序

[复制链接]

363

主题

364

帖子

1483

积分

金牌会员

Rank: 6Rank: 6

积分
1483
发表于 2022-6-19 14:45:57 | 显示全部楼层 |阅读模式 IP:江苏南通
【如皋java培训机构+】
as-if-serial语义
as-if-serial语义的意思是,所有的操作均可以为了优化而被重排序,但是你必须要保证重排序后执行的结果不能被改变,编译器、runtime、处理器都必须遵守as-if-serial语义。注意as-if-serial只保证单线程环境,多线程环境下无效。

下面我们用一个简单的示例来说明:
int a = 1 ;      //Aint b = 2 ;      //Bint c = a + b;   //C
A、B、C三个操作存在如下关系:A、B不存在数据依赖关系,A和C、B和C存在数据依赖关系,因此在进行重排序的时候,A、B可以随意排序,但是必须位于C的前面,执行顺序可以是A –> B –> C或者B –> A –> C。但是无论是何种执行顺序最终的结果C总是等于3。

as-if-serail语义把单线程程序保护起来了,它可以保证在重排序的前提下程序的最终结果始终都是一致的。

△联系人:如皋上元教育董老师▽
△如皋上元教育学校地址:江苏省南通市如皋海阳路中山大厦12楼上元教育(中国银行对面)▽
△联系电话:①⑤②⑥②⑦⑥④②①①▽


回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

!dbuq!海安热线!dbuh!

快速回复 返回顶部 返回列表