深入理解volatile原理。

volatile的两个功能:①防止指令重排②可见性。 1什么是指令重排? 为了使处理器内部的运算单元可以充分的被利用,处理器可能会对输入代码进行乱序执行优化,处理器会在计算之后将乱序的结果重组,保证该结果和顺序执行的结果一致,但并不保证程序中各个语句计算的先后顺序和输入代码中的顺序一致。Java虚拟机的即时编译器也有类似的指令重排的机制。 而volatile防止指令重排的功能,防止多线程情况下发生
相关文章
相关标签/搜索