一、多线程共享资源
- 共享途径
将共享资源作为参数在构造函数中传入 - 多线程同时修改的资源
使用volatile修饰,保证happen-before原则 - 基本数据类型不可作为共享资源,需提供一个包装类
二、多线程中的Map
- HashMap
多线程中不安全,其方法不是原子的。 - HashTable
线程安全,但在方法中采用synchronized语句,影响性能。 - synchronizedMap
通过Collections的synchronizedMap()方法获得一个线程安全的Map,但当对原Map有多线程修改时,将抛出
java.util.ConcurrentModificationException异常 - ConCurrentMap
线程安全,提供多个锁,性能好。
(有时间补充)
三、监控器模式
在两个类间共享一个变量,监视器类判断该变量的值是否满足某一条件。