1.什么是线程安全性
当多个线程访问某个类时,不管运行时环境采用何种调用方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。
无状态的对象一定是线程安全的,比如:Servlet。
2.原子性 2.1 竞争条件由于不恰当的执行时序而出现不正确的结果的情况,就是竞争条件。
“先检查后执行”操作,即通过一个可能实效的观测结果来决定下一步的动作。比如:延迟初始化。
if(instance == null) { instance = new SomeObject(); }