1. 保证线程对数据的可见性。 参考内存可见性
  2. 保证线程执行代码的互斥性。参考
  3. 保证执行代码的原子性。参考 并发更新之CAS