既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的?

答案解析

不是。volatile只保证可见性和禁止指令重排,不保证原子性,复合操作仍需加锁。