如果一个类中有成员变量和两个方法a、b,它们的实现都对该成员变量加synchronized同步块,且同步块都锁定这个成员变量,那么能否保证对该资源的线程安全?请分析原因。
考察说明
考察对synchronized锁对象粒度与线程安全边界理解
回答思路
- 指出锁对象是成员变量本身,两个方法同步块使用同一把锁
- 说明若成员变量仅被a、b访问,则互斥正确,能保证线程安全
- 指出若存在其他方法或外部直接访问该成员变量而未加锁,则仍不安全
- 讨论锁粒度较粗对并发性能的影响
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。