在多线程环境下,若线程A持有资源X的锁,并尝试获取资源Y的锁,而线程B持有资源Y的锁,并尝试获取资源X的锁,则可能发生死锁。下列关于这种死锁的描述,错误的是:
答案解析
选项A正确,通过资源分层排序,使得线程按照固定的顺序请求资源,可以破坏循环等待的条件,从而避免死锁。选项B正确,死锁发生时,线程会互相等待对方释放资源,导致无限期阻塞。选项C正确,死锁的必要条件之一就是互斥使用和不可抢占,即一个资源被一个线程持有后,其他线程无法使用,且只能由持有者主动释放。选项D错误,虽然超时机制可以解除部分死锁情况,但是死锁的核心原因是循环等待,超时机制只是在特定条件下能让线程放弃资源,不是根本解决办法。如果超时时间很长,死锁可能仍然存在,无法完全避免,因此该描述是错误的。
正确答案:D