volatile类型变量

volatile是java虚拟机提供的最轻量级的同步机制。

volatile的两种特性:可见性和禁止指令重排序优化(有序性)

一、可见性指当一条线程修改了这个变量的值,新值对于其他线程可以立即得知。

voltile只能保证可见性,且必须满足以下两个条件:

1、运算结果并不依赖当前值,或者能够确保只有单一线程修改变量的值

2、变量不需要与其他的状态变量共同参与不变约束

二、禁止指令重排序优化

普通变量仅仅保证在该方法的执行过程中所有依赖赋值结果的地方都能获取到正确的结果,而不能保证变量赋值操作的顺序与程序执行顺序一致

也就是java 内存模型中“线程内表现为串行的语义”

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容