volatile 修饰 i++ 安全吗
不安全。volatile 只能保证变量可见性和禁止指令重排序,无法保证复合操作(如自增)的原子性。在多线程环境下,多个线程同时执行 i++ 会导致数据竞争,最终结果小于预期值。

为什么 i++ 不是原子操作
因为 i++ 在字节码层面被分解为读取、修改和写入三个步骤,中间可能被其他线程打断。

AtomicInteger
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











