死锁概述与总结

本文介绍了死锁的概念,包括线程自己将自己锁住和多线程抢占锁资源导致的死锁情况。接着讨论了计算机系统中死锁的类型,如可重用性和可消耗性资源、可抢占性与不可抢占性资源,以及引发死锁的原因。接着阐述了死锁的定义、必要条件和处理方法,如预防、避免、检测和解除死锁。最后,文章讲解了银行家算法,通过其数据结构和步骤来避免死锁,确保系统的安全性。
摘要由CSDN通过智能技术生成

一、死锁的引入

顾名思义,死锁死锁肯定与锁有关,我们知道引入锁又是为了解决多进程或多线程之间的同步与互斥问题,那么到底怎样的情形才会产生死锁呢?
典型的两种死锁情形:
(一)线程自己将自己锁住
一般情况下,如果同一个线程先后两次调用lock,在第二次调⽤用时,由于锁已经被占用,该线程会挂起等待占用锁的线程释放锁,然而锁正是被自己占用着的,该线程又被挂起而没有机会释放锁,因此 就永远处于挂起等待状态了,于是就形成了死锁(Deadlock)。
(二)多线程抢占锁资源被困
又如线程A获 得了锁1,线程B获得了锁2,这时线程A调用lock试图获得锁2,结果是需要挂起等待线程B释放 锁2,而这时线程B也调用lock试图获得锁1,结果是需要挂起等待线程A释放锁1,于是线程A和B都 永远处于挂起状态了,死锁再次形成。
这里写图片描述

二、计算机系统中的死锁

1、资源分类
(一)可重用性资源和消耗性资源
可重用资源:可供用户重复使用多次的资源。
性质:
1》每一个可重用性资源中的单元只能分配给一个进程(或线程)使用,不允许多个进程(或线程)共享。
2》可重用性资源的使用顺序:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值