Volatile关键字

把变量声明为Volatile类型后,编译器和运行时都会注意到这个变量是共享的,因此不会将该变量的操作和其他内存操作一起重排序。

Volatile变量不会被缓存梓寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新的写入值

访问volatile变量不会执行加锁操作,从而不会阻塞线程。因此他是比sychronized关键字更轻量的同步机制。

volatile变量只能确保可见性,而加锁机制既可以保证可见性,又可以确保原子性

当且仅当符合以下条件才该使用volatile:
1.变量的写操作不依赖变量的当前值
2.访问变量的时候不需要加锁
3.变量不会与其他状态变量一起纳入不变性条件中

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

推荐阅读更多精彩内容