volatile 的作用是什么?能保证原子性吗?能保证有序性吗?

简介: volatile 的作用是什么?能保证原子性吗?能保证有序性吗?

(1)volatile 保证了不同线程之间对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。Volatile 关键字会强制将修改的值立即写入主存。

(2)禁止进行指令重排序。

2.Volatile 不能保证原子性。

3. 保证部分有序性

使用 Volatile 一般用于 状态标记量 和 单例模式的双检锁

相关文章
|
11天前
|
缓存 安全 Java
多线程的三大特性:原子性、可见性和有序性
多线程的三大特性:原子性、可见性和有序性
16 0
|
4月前
|
存储 安全 Java
关于volatile解决内存可见性问题(保证线程安全)
关于volatile解决内存可见性问题(保证线程安全)
|
4月前
|
Java
8.volatile为啥不能保证原子性?
8.volatile为啥不能保证原子性?
29 0
8.volatile为啥不能保证原子性?
|
4月前
|
缓存 安全 Java
5.volatile是什么?怎么保证可见性?
5.volatile是什么?怎么保证可见性?
41 0
5.volatile是什么?怎么保证可见性?
|
4月前
|
缓存 Java
13.synchronized总结:怎么保证可见性、有序性、原子性?
13.synchronized总结:怎么保证可见性、有序性、原子性?
42 0
13.synchronized总结:怎么保证可见性、有序性、原子性?
|
4月前
|
安全 Java
7.volatile怎么通过内存屏障保证可见性和有序性?
7.volatile怎么通过内存屏障保证可见性和有序性?
29 0
7.volatile怎么通过内存屏障保证可见性和有序性?
|
4月前
|
缓存 安全 Java
3.线程安全之可见性、有序性、原子性是什么?
3.线程安全之可见性、有序性、原子性是什么?
43 0
3.线程安全之可见性、有序性、原子性是什么?
|
8月前
|
安全 Java
架构系列——面试必问:volatile的可见性、防止指令重排序以及不能保证原子性的解决方式
架构系列——面试必问:volatile的可见性、防止指令重排序以及不能保证原子性的解决方式
|
存储 安全 Java
Volatile能不能保证线程安全?
Volatile能不能保证线程安全?
|
算法 Java 编译器
线程安全性详解(原子性、可见性、有序性)()2
线程安全性详解(原子性、可见性、有序性)
168 0
线程安全性详解(原子性、可见性、有序性)()2