1. 说一下 volatile 的作用,它能保证线程安全吗?答:volatile 的核心作用是保证变量的可见性,并且在一定程度上禁止指令重排,但它不能保证复合操作的原子性,所以一般不能单独用来保证线程安全。可见性一个线程修改了 volatile 变量后,其他线程能够立刻看到最新值。它适合做状态标志位,比如“设备初始化完成”“接收到数据”等。禁止指令重排编译器和 CPU 在优化时可能会调整指令顺序。volatile 会在读写时加入内存屏障,避免关键步骤被乱序执行。不能保证原子性像 count++ 这种操作,本质上是“读-改-写”三步,不是原子操作。即使 count 是 volatile,多个线程...