1.check-then-act
检查在运行
:你观察(check)到一件事为真,然后(then)基于你的观察去执行一些动作,事实上在从观察到执行操作的这段时间内观察的结果已经无效了,从而引发错误.
常见的方法惰性初始化
//不要这样做
public class LazyInitRace {
private ExpensiveObject instance = null;
public ExpensiceObject getInstance() {
if (instance == null) {
instance = new ExpensiveObject();
}
return instance;
}
}