volatile和syncronized有序性的区别

但是volatile和synchronized的有序是不同的:

volatile关键字禁止JVM编译器已及处理器对其进行重排序,

synchronized保证顺序性是串行化的结果,但同步块里的语句是会发生指令从排。

实现单例模式方法之一的双重校验锁方式,需要给私有变量加volatile关键字,用来保证操作指令不会重排序。

虽然new 实例对象是写在synchronized代码块中,但synchronized只是保证了代码按照顺序执行,没办法保证操作指令按顺序执行。

上一篇:浅学Java多线程 Thread synchronized


下一篇:备战金三银四:Java核心技术面试题100+(含大厂面试整体及解析)