线程安全性问题成因 多线程环境多个线程操作同一共享资源对该共享资源进行非原子性操作 如何避免 打破成因中三点中任一点 多线程环境 – 将多线程改单线程(必要的代码加锁访问)多个线程操作同一共享资源 – 不共享资源(ThreadLocal、不共享、操作无状态、不可变)对共享资源进行了非原子性操作 – 将非原子性操作改成原子性操作(加锁、使用JDK自带的原子性操作的类、JUC提供的相应的并发工具类)