指令重排与jvm底层实现

97 阅读1分钟

指令重排涉及到如下四种,loadload,loadstore,storeload,storestore,x86状态下在jvm里只会涉及到storeload,只有这一种才会导致你的程序不稳定,截一张jvm底层代码的图,会涉及到这四种方法:
在这里插入图片描述
在x86平台下,用如下方法实现不让指令重排的操作:
在这里插入图片描述
在x86情况下,指令屏障只会用在storeload上,其他的只需要告诉在编译阶段不要把指令重新排序即可。
在这里插入图片描述