volatile关键字能否保证线程安全?
单纯使用 volatile 关键字是不能保证线程安全的
- volatile 只提供了一种弱的同步机制,用来确保将变量的更新操作通知到其他线程
- volatile 语义是禁用 CPU 缓存,直接从主内存读、写变量。表现为:更新 volatile 变量时,JMM 会把线程对应的本地内存中的共享变量值刷新到主内存中;读 volatile 变量时,JMM 会把线程对应的本地内存设置为无效,直接从主内存中读取共享变量
- 当把变量声明为 volatile 类型后,JVM 增加内存屏障,禁止 CPU 进行指令重排
- Java 自学指南
- Java 面试题汇总PC端浏览【点这里】
- Java知识图谱
- Java 面试题汇总小程序浏览,扫二维码
相关推荐
网络菜市场 2020-05-11
84520193 2020-06-26
Kele0 2020-05-30
Bloddy 2020-02-28
少年阿涛 2020-01-17
89467505 2020-01-05
gongruitao 2019-12-27
82921934 2019-12-15
LUOPING0 2010-08-27
qiaosym 2011-03-02
hbcbgcx 2010-12-04
小路恢宏随手记 2015-07-10
pengjin 2019-11-05
cocleon 2019-11-03
javaxiaoheibai 2019-10-23
讨厌什么变成什么 2019-11-03
xienue 2019-10-29
爱奇艺VIP腾讯VIP 2019-10-15
ddsdevgroup 2012-06-10