软件构造7.2
What is Thread Safety 什么是线程安全
.程序的正确性依赖于底层操作的时序。这就不可靠了
- 限制数据共享
- 共享不可变数据
- 共享线程安全的可变数据
- 同步机制:通过锁的机制共享线程不安全的可变数据,变并行为串行
Strategy 1: Confinement限制数据共享
线程之间不共享mutable数据类型
避免全局变量
Strategy 2: Immutability策略2:使用Immutable变量。并保证是没有任何可能的mutate变异
使用不可变数据类型,不可变引用,避免多线程之间的竞争冲突
Strategy 3: Using Threadsafe Data Types 策略3:使用线程安全的数据类型
必须要用mutable,用线程安全的数据类型
集合类List,Set,Map,线程不安全的,ArrayList,HashMap,hashSet