一、概念
“同步”意味着某种形式的原子性或者互斥,
在Java 中,它还意味着保持共享存储器与线程的内存工作区之间的一致性。
有一些同步事件要引起线程把cache中的更新写回到共享存储器中,从而使这些更新对其线程是可见的。而另外一些同步事件则要求线程将其cache中的值设为无效,再重新从存储器中读取域值,从而使其它线程的更新对该线程是可见的。
同步事件是可线性化的,它们是全序的,且所有线程都要遵循这种约定次序。
二、实现方式
2.1 锁和同步块
2.2 volatile 域
2.3 final 域