volatile变量,应该写到主存中,而不是仅仅写到CPU缓存。counter变量。一个线程(T1)修改了counter,另一个线程(T2)读取了counter(但没有修改它),将counter变量声明为volatile,就能保证写入counter变量后,对T2是可见的。}}update()方法写入3个变量,其中只有days变量是volatile。}}请注意totalDays()方法开始读取days变量值到total变量。提供了happends-before保证。而不是仅仅写到CPU缓存。CountDownLatch窥探AQS下一代的多语言JVM:GraalVM手撕面试题ThreadLocal?。