volatile是什么volatile关键字是Java提供的一种轻量级同步机制。JMM是一个屏蔽了不同操作系统架构的差异的抽象概念,只是一组Java规范。重排序在阐述volatile有序性之前,需要先补充一些关于重排序的知识。重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段。简单来说,就是为了提升执行效率。volatile提供了happens-before保证,对volatile变量的写入happens-before所有其他线程后续对的读操作。拿X86平台来说,主要提供了这几种内存屏障指令:JMM规范需要加这么多内存屏障,但实际情况并不需要加这么多内存屏障。实际上HotSpot关于volatile的实现就是使用的lock指令,只在volatile标记的地方加上带lock前缀指令操作,并没有参照JMM规范的屏障设计而使用对应的mfence指令。

Java关键字volatile知识点总结

Java关键字volatile知识点总结

Java关键字volatile知识点总结

Java关键字volatile知识点总结

Java关键字volatile知识点总结

Java关键字volatile知识点总结

Java关键字volatile知识点总结

Java关键字volatile知识点总结

Java关键字volatile知识点总结

Java关键字volatile知识点总结