3 个回答
如果只有一把锁,并且两个线程在执行过程中都按照相同的顺序获取这把锁,那么通常情况下是不会发生死锁的。死锁通常发生在多个锁之间的相互等待情况下。
发布于:8个月前 (06-17) IP属地:四川省
什么情况下,才会发生死锁?
发布于:8个月前 (06-17) IP属地:四川省
什么情况下,才会发生死锁?
死锁是多线程编程中常见的问题,通常在以下情况下会发生死锁:
当这四个条件同时满足时,就可能导致死锁的发生。
互斥条件:线程之间竞争互斥资源,即每次只有一个线程可以使用资源。
持有并等待:线程持有至少一个资源并等待获取其他线程持有的资源。
无抢占:资源不能被强制性地从持有它的线程中释放,只能由持有资源的线程自愿释放。
循环等待:一组线程彼此之间形成循环等待资源的关系。
当这四个条件同时满足时,就可能导致死锁的发生。
发布于:8个月前 (06-17) IP属地:四川省
我来回答
您需要 登录 后回答此问题!