出现线程安全性问题的条件 : 在多线程的环境下 必须有共享资源 对共享资源进行非原子性操作 解决线程安全性问题的途径 synchronized (偏向锁,轻量级锁,重量级锁) 单例模式中的双重检测 volatile 不能保证非原子操作 JDK提供的原子类 使用Lock(共享锁,排它锁) 认识“*锁” 偏向锁 轻量级锁 重量级锁 重入锁 自旋锁 共享锁 独占锁 排他锁 读写锁 公平锁 非公平锁 死锁 活锁