Advertisement

学了JMM指令重排序,让我明白如何书写单例模式

阅读量:

JMM 是什么?

JVM 是 Java � workings 的全称,在程序设计中被广泛采用以优化资源管理和性能表现;Java memory model 旨在消除各类硬件及操作系统间的内存访问差异;从而使得 Java 程序能够在不同平台间均保持一致的内存访问效果

重排序

在许多情况下,在程序指定的顺序之外(对象实例字段、类静态字段和数组元素)访问程序变量(对象实例字段、类静态字段和数组元素)的行为也存在偏差。编译器通常出于优化目的会调整指令序列 。然而,在某些特定的情况下(如处理器架构或特定编程模型),处理器可能会以非线性方式重新排列指令序列。这些数据通常会以不同的顺序存在于寄存器、缓存和主存储器中。

产生重排序?

以下是一个简明扼要的例子;在经过反复测试后发现存在指令重新排序的现象。代码如下:

复制代码
    /** * 当m1 和 m2 发生重排序后,先执行

全部评论 (0)

还没有任何评论哟~