本文作者:黄海燕,叩丁狼高级讲师。原创文章,转载请注明出处。
1. volatile 关键字
1.1 volatile 关键字作用:
在百度百科截取的描述如下:

叩丁狼教育.png
说明volatile 关键字作用作用有两点:
-
防止指令重排:规定了volatile 变量不能指令重排,必须先写再读。
-
内存可见:线程从内存中读取volatile修饰的变量的数据,直接从主内存中获取数据,不需要经过CPU缓存,这样使得多线程获取的数据都是一致的。如图所示:

叩丁狼教育.png
1.2 volatile和synchronized的区别
volatile不能够替代synchronized,原因有两点:
1.对于多线程,不是一种互斥关系
2.不能保证变量状态的“原子性操作”,所以volatile不能保证原子性问题
1.3解决单例设计模式线程安全问题
实现单例设计模式两种
- 饿汉式(不

本文由叩丁狼高级讲师黄海燕撰写,探讨了volatile关键字的作用,包括防止指令重排和确保内存可见性。同时,文章分析了volatile与synchronized的区别,指出volatile不能保证原子性。在解决单例设计模式的线程安全问题上,通过双重检查锁定和避免指令重排,展示了如何使用volatile实现线程安全的懒汉式单例。
最低0.47元/天 解锁文章
948

被折叠的 条评论
为什么被折叠?



