我理解一个方法是否要同步, 应该考量以下几点:
1. 是否会有多个线程同时访问一个对象(也就是调用同一个对象的方法), 注意这里指的是同一个对象, 而不是一个类的多个方法, 我开始总会混淆两者.
如果答案是"否", 就不需同步.
2. 若1的答案为"是", 还应该具体到对象的方法上. 某个方法是否会读写"类或全局"的成员变量. 若答案为"否", 也不需同步.
3. 即便上两个答案都为"是", 也应该衡量"安全"与"效率"在特定的环境下谁更重要, 或者说如果因不同步适成的"数据不完整"对用户(或系统)影响不大(或者发生的机率极低), 这种情况也不应该牺牲"效率"而追求同步.
因我没有太多经验, 请大家指正.