处理器重排序:
现代处理器使用写缓冲区来临时保存向内存写数据。
每个缓冲区只对它所在的处理器可见。
处理器对内存的读/写操作的顺序,与实际内存发生的读/写操作可能会不一致。
现代处理都允许对写-读操作重排序。
处理器支持的内存重排序的类型:
Load 从内存中读取 Store存储到内存
内存屏障指令
为了保证内存可见性,java编译器在生成编译器指令时,会假如内存屏障指令来禁止特定的处理器重排序。
JMM的内存屏障指令有如下四种:
处理器重排序:
现代处理器使用写缓冲区来临时保存向内存写数据。
每个缓冲区只对它所在的处理器可见。
处理器对内存的读/写操作的顺序,与实际内存发生的读/写操作可能会不一致。
现代处理都允许对写-读操作重排序。
处理器支持的内存重排序的类型:
Load 从内存中读取 Store存储到内存
内存屏障指令
为了保证内存可见性,java编译器在生成编译器指令时,会假如内存屏障指令来禁止特定的处理器重排序。
JMM的内存屏障指令有如下四种: