什么是并发编程安全性呢?如何保证多线程安全呢?
下文笔者讲述保证并发编程安全性的注意事项及保证多线程线程安全的方法
并发编程必须满足以下特点
只有保证了以下三点,才能使用并发编程变的安全 一、原子性: 一个或多个操作 要么全部执行成功 要么全部执行失败 二、可见性: 一个线程对共享变量的修改 另一个线程能够立刻查看 三、有序性: 程序运行的顺序 需按照代码的先后顺序运行 避免指令被重排
常导致线程不安全的原因
一、线程切换带来的原子性问题 二、缓存导致的可见性问题 三、编译优化带来的有序性问题
编写线程安全的常见方法
下面笔者将讲述从并发编程的三要素着手线程安全处理,如下所示: 一、JDK Atomic开头的原子类、synchronized、lock可解决原子性问题 二、volatile、synchronized、lock可解决可见性问题 三、volatile、Happens-Before 规则可以解决有序性问题
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。