1 并发的原理解析

1.1 并发会造成什么问题

  1. 死锁
  2. 资源占用
  3. 线程安全
    …

1.2 并发的根本问题

  1. 原子性
  2. 可见性
  3. 有序性

以上三个是造成线程安全的主要原因

1.2.1 线程在那里创建的

线程在CPU上开启和执行
在硬件上面CPU的缓存一致性即可见性 单核CPU没有可见性 在硬件上解决缓存一致性伊利诺斯协议–MESI

1.2.2 java直接跟硬件交互的是什么

java直接跟硬件交互的是JVM

关键值在反射的标识是二进制

java中8个高级指令 lock unlock ….

1.2.3 volatile解决可见性的原理,当然他也解决了有序性

需要了解指令重排序,指令流 数据量 控制流

volatile解决不了原子性