原子性:锁(lock)和同步(synchronized)、CAS(compare and swap)
可见性:volatile(乐观锁)
顺序性:happens-before原则
当我们说线程安全时,到底在说什么
一图带你了解java线程安全