前言
在学习ConcurrentHashMap源码的过程中,发现自己对并发编程简直是一无所知,因此打算从最基础的volatile开始学习.
volatile虽然很基础,但是对于毫无JMM基础的我来说,也是十分晦涩...后来发现一篇文章(参考链接第一篇),给了我一些启示:用回答问题的方式来学习知识及写博客,因为对我这种新手来说,回答别人的问题,总比自己”演讲”要来的容易许多.
volatile的用法
volatile只可以用来修饰变量...修饰.
volatile的作用及原理
当一个变量被volatile修饰时,会拥有两个特性:
保证了不同线程对该变量操作的内存可见性....使用volatile关键字修饰inited变量,JVM就会阻止对inited相关的代码进行重排序.这样就能够按照既定的顺序指执行.
volatile总结
volatile是轻量级同步机制,与synchronized...注意事项
volatile并不能保证操作的原子性,想要保证原子性请使用synchronized关键字加锁.