https://en.wikipedia.org/wiki/Thread_safety
http://polaris.blog.51cto.com/1146394/382161/
线程安全(thread-safe)程序描述了一个例行程序,它可被多个编程线程(thread)调用而没有线程间的不必要的交互。(线程是代表某个用户或进程运行程序的一个实例)线程安全对Java程序员非常重要,因为Java是一种支持线程嵌入的编程语言。通过使用线程安全例行程序,可以消除一个线程干涉并修改另一个线程数据的危险。
确保一个例行程序是线程安全的可以通过以下方法:
1.确保并发线程使用和其他线程合作的同步算法。
2.当非同步算法起作用时,对线程限制共享对象的地址。
正确性与线程安全性之间的关系非常类似于在描述 ACID(原子性、一致性、独立性和持久性)事务时使用的一致性与独立性之间的关系:从特定线程的角度看,由不同线程所执行的对象操作是先后(虽然顺序不定)而不是并行执行的。
五类线程安全性:
1.不可变
2.线程安全
3.有条件的线程安全
4.线程兼容
5.线程对立