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解决不了原子性