在多线程编程中,若线程A持有锁后内部功能执行时间超出预期而不释放锁,线程B如何在不影响线程A功能的前提下,按照原有时序预期获取锁?请仅通过锁操作实现。
考察说明
考察对锁超时、可重入锁、锁公平性及强制释放机制的理解与设计
回答思路
- 理解线程A不释放锁的场景本质是锁被长时间占用
- 提出锁超时机制,如ReentrantLock的tryLock带超时,使线程B在超时后放弃或重新尝试
- 讨论超时强制释放锁的代价,如线程A尚未完成时的数据一致性问题
- 说明无超时或强制释放时,死锁或长时间阻塞的风险
- 结合功能不受损的要求,分析强制释放需配合任务状态确认或补偿机制
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。