读了很多书籍。effective java和netty权威指南解释印象是比较深刻,也能互相印证。
借此总结一下,volatile的主要有2个作用
第一,阻止虚拟机对代码优化。解决指令重排问题。
第二,线程中变量可以实时同步到主存中,解决可见性问题。
volatile不能解决并发编程中,需要互斥的问题,但是经常可以用来解决,一个线程写,多个线程读的问题!
读了很多书籍。effective java和netty权威指南解释印象是比较深刻,也能互相印证。
借此总结一下,volatile的主要有2个作用
第一,阻止虚拟机对代码优化。解决指令重排问题。
第二,线程中变量可以实时同步到主存中,解决可见性问题。
volatile不能解决并发编程中,需要互斥的问题,但是经常可以用来解决,一个线程写,多个线程读的问题!