Skip to content
目录概览

在 Java 程序中怎么保证多线程的运行安全?

  • 出现线程安全问题的原因

    • 线程切换带来的原子性问题
    • 缓存导致的可见性问题
    • 编译优化带来的有序性问题
  • 解决办法

    • JDK Atomic开头的原子类、synchronized、LOCK,可以解决原子性问题
    • synchronized、volatile、LOCK,可以解决可见性问题
    • Happens-Before 规则可以解决有序性问题