13.7 保持同步区域微小
关键字synchronized制造了锁。同一个锁维护的所有代码区域在任一时刻保证只有一个线程执行。锁是昂贵的,因为它们带来了延迟和额外开销。所以我们不愿将代码扔给synchronized语句了事。另一方面,临界区[13]应该被保护起来。所以,应该尽可能少地设计临界区。
有些天真的程序员想通过扩大临界区面积达到这个目的。然而,将同步延展到最小临界区范围之外,会增加资源争用、降低执行效率[14]。
建议:尽可能减小同步区域。
时间: 2024-11-05 20:48:04