为了账号安全,请及时绑定邮箱和手机立即绑定

as-if-serial语义部分的不理解

在讲到as-if-serial,说到Java编译器、运行时和处理器都会保证Java在单线程下遵循as-if-serial语义。运行时是什么意思,感觉这句话的标点符号用得不对,导致我不是很明白,是不是说java编译器会保证~~,且java在运行的时候处理器会保证~~?

正在回答

2 回答

不管怎么重排序(编译器和处理器为了提高并行度),(单线程)程序的执行结果不能被改变。

java内存中的变量都有指针引用,上下文引用成链,这个链是不会被打乱重排序的,只有没有数据依赖关系的代码,才会被冲排序,所以在单线程内部重排序不会改变程序运行结果,这就是as-if-serial

0 回复 有任何疑惑可以回复我~
#1

嘻嘻T溦 提问者

嗯,感觉又知道了些
2017-06-22 回复 有任何疑惑可以回复我~

编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

as-if-serial语义部分的不理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信