一、线程安全
1. 分类(将共享数据按照安全程度的强弱顺序分)
A. 不可变:如使用final修饰的基本数据类型;
B. 绝对线程安全
C. 相对线程安全:使用额外的同步手段(如锁)来保证调用的正确性;
D. 线程兼容:使用栈封闭来保证线程安全;
E. 线程对立。
2. 实现方法
A. 互斥同步:Synchronized和ReentrantLock锁;
B. 非阻塞同步:CAS和JUC包下原子类;
C. 无同步方案:栈封闭和线程本地存储(ThreadLocal)。
可参考:Java并发 - 理论基础
原文:https://www.cnblogs.com/ruhuanxingyun/p/13473505.html