1. 无论何时,只要有多于一个的线程访问给定的状态变量,而且其中某个线程会写入该变量,此时必须使用同步来协调线程对该变量的访问
2. 当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步即在调用方代码不必作其他的协调,这个类的行为仍然是正确的,那么称这个类时线程安全的
3. 为了保护状态的一致性,要在单一的原子操作中更新相互关联的状态变量
4. Synchronized方法的锁,就是该方法所在的对象本身,静态的synchronized方法从Class方法上获取锁
5. 通常简单性与性能之间是相互牵制的,实现一个同步策略时,不要过早地为了性能而牺牲简单性
6. 有些耗时的计算或操作,比如网络或者控制台I/O,难以快速完成,执行这些操作期间不要占有锁