
为什么system.out.println()能保证变量的原子性?
正常情况下操作系统读取变量每次都需要从主内存里面读取,而JVM为了让程序运行更快,每个线程读取变量时都会自己缓存一份,这样就不需要每次都从主内存读取,这也导致有一个线程修改了变量的值,其他线程却不知道,造成了缓存不一致的问题,是更轻量级的关键字作用在变量上面使得每次线程读取变量的值都需要直接从。synchronized关键字就可以保证变量的原子性呢?从源码可以看出在使用print方法的时候使用了关键字。3、从主内存拷贝对象副本到工作内存。4、执行代码(计算或者输出等)之中读取,而不是读取。





