1. 無論何時,只要有多於一個的線程訪問給定的狀態變量,而且其中某個線程會寫入該變量,此時必須使用同步來協調線程對該變量的訪問
2. 當多個線程訪問一個類時,如果不用考慮這些線程在運行時環境下的調度和交替執行,並且不需要額外的同步即在調用方代碼不必作其他的協調,這個類的行爲仍然是正確的,那麼稱這個類時線程安全的
3. 爲了保護狀態的一致性,要在單一的原子操作中更新相互關聯的狀態變量
4. Synchronized方法的鎖,就是該方法所在的對象本身,靜態的synchronized方法從Class方法上獲取鎖
5. 通常簡單性與性能之間是相互牽制的,實現一個同步策略時,不要過早地爲了性能而犧牲簡單性
6. 有些耗時的計算或操作,比如網絡或者控制檯I/O,難以快速完成,執行這些操作期間不要佔有鎖