既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的? 迷失技术de小猪 3个月前 并发编程 57 显然不是的。基于 volatile 变量的运算在并发下不一定是安全的。 volatile 变量在各个线程的工作内存,不存在一致性问题(各个线程的 工作内存中 volatile 变量,每次使用前都要刷新到主内存)。 但是 Java 里面的运算并非原子操作,导致 volatile 变量的运算在并发下一样是不安全的。 回复 我来回复 暂无回复内容 请 登录 或者 注册 后回复。 相关问题 请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性? 3个月前 0 86 JVM 对 Java 的原生锁做了哪些优化? 3个月前 0 67 如何让 Java 的线程彼此同步?你了解过哪些同步器? 请分别介绍下。 3个月前 0 59 什么是可重入性,为什么说 Synchronized 是可重入锁? 3个月前 0 54 创建线程池的几个核心构造参数? 3个月前 0 61 你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁? 3个月前 0 48 除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具? 3个月前 0 45 Synchronized 用过吗,其原理是什么? 3个月前 0 54 乐观锁一定就是好的吗? 3个月前 0 71 Java 中的线程池是如何实现的? 3个月前 0 80