1.Java内存模型
1>.JMM即Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着CPU寄存器、缓存、硬件内存、CPU指令优化等;
2>.JMM体现在以下几个方面:
①.原子性 - 保证指令不会受到线程上下文切换的影响;
②.可见性 - 保证指令不会受cpu缓存的影响;
③.有序性 - 保证指令不会受cpu指令并行优化的影响;
2.可见性
2.1.问题: 退不出的循环
1>.main线程对run变量的修改对于t线程不可见,导致了t线程无法停止
@Slf4j
public class TestThreadDemo1 {
// 共享变量
static boolean run = true;