并发

发布时间 2023-09-05 17:28:41作者: lwx_R

1.问题

内存泄漏 上下文切换 线程安全 死锁

2.必要因素

  • 原子性
  • 可见性:一个线程对共享变量的修改,另一个线程立刻看见(synchronized,volatile)
  • 有序性

3.线程安全

3.1 原因

  • 线程切换出现原子性问题:使用synchronized或锁
  • 缓存导致可见性问题:synchronized,volatile,锁
  • 编译优化带来的有序性问题:Happens-Before规则