出现线程安全问题需要满足三个条件 1.多线程的环境下 2.必须有共享资源 3.对资源进行非原子性操作 Java中的原子性操作包括: a. 基本类型的读取和赋值操作,且赋值必须是数字赋值给变量,变量之间的相互赋值不是原子性操作。 b.所有引用reference的赋值操作 c.java.concurrent.Atomic.* 包中所有类的一切操作