线程安全要考虑三个方面:可见性、有序性 、原子性 可见性:一个线程对共享变量进行修改,另一个线程能看到最新的结果 有序性:一个线程内代码按编写顺序执行 原子性:一个线程内多行代码以一个整体运行,期间不能有其他线程的代码插队 volatile能保证共享变量的可见性和有序性,但并不能保证原子性