线程安全概述
线程安全是多线程领域的问题。线程安全可以理解为一个方法或实例在多线程环境中使用不会出现问题。
线程安全的实现方式
- 使用
synchronized
关键字 - 使用
java.util.concurrent.atomic
包中的原子类,例如AtomicInteger
- 使用
java.util.concurrent.locks
包中的锁 - 使用线程安全的集合
ConcurrentHashMap
- 使用
volatile
关键字,保证变量可见性(直接从内存读取,而不是从线程的cache读取,使用MESI缓存一致性协议)