假设有三个线程T1、T2和T3,它们分别需要访问三个资源R1、R2和R3。初始状态下,T1持有R1,T2持有R2,T3持有R3。若此时T1请求R2,T2请求R3,T3请求R1,则下列关于此状态的说法正确的是:

答案解析

选项A错误,虽然出现了循环等待(T1->R2, T2->R3, T3->R1),但是还需要看系统对资源的分配策略和锁机制的实现。并不是有循环等待就一定会立刻发生死锁。选项B正确,出现循环等待是死锁的必要条件,但不是充分条件。死锁的发生还需要满足互斥使用、不可抢占、请求和保持等条件,并非有循环等待就一定会死锁。选项C错误,存在循环等待,如果资源无法被其他线程强制夺取,则会发生死锁。选项D错误,资源R1、R2、R3分别被T1、T2、T3占用,并不是没有被其他线程占用。
正确答案:B
随机推荐
开始刷题