当两个线程互相持有互斥锁,并且都在等待对方释放锁,在没有外力的作用下,这些线程会一直相互等待,无法继续运行,这种情况就是发生死锁。
死锁只有同时满足以下四个条件才会发生:
互斥条件:多个线程不能共享一个资源。
持有并等待条件:线程1持有资源A,要申请资源B,然而资源B被线程2持有,那么线程1就会等待。
不可剥夺条件:当线程已经持有了资源 ,在自己使用完之前不能被其他线程获取。
环路等待条件:在死锁发生的时候,两个线程获取资源的顺序构成了环形链。
死锁概念及条件
最新推荐文章于 2025-09-03 23:14:03 发布