参考答案
线程的安全性问题如下:
- 原子性:一个或者多个操作在 CPU 执行的过程中不被中断的特性;
- 可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到;
- 有序性:程序执行的顺序按照代码的先后顺序执行。
导致线程的安全性问题的原因:
- 缓存导致的可见性问题;
- 线程切换带来的原子性问题;
- 编译优化带来的有序性问题。
多线程运行安全的解决办法:
- JDK Atomic开头的原子类、synchronized、LOCK,可以解决原子性问题;
- synchronized、volatile、LOCK,可以解决可见性问题;
- Happens-Before 规则可以解决有序性问题。
以上,是Java面试题【Java程序中怎么保证多线程的运行安全】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—