根据标题,死锁的类型是什么?最近我被问到这个问题,但是我只知道死锁的类型,当线程A正在等待线程B获取的锁,而线程B正在等待线程A获取的锁。是否存在还有其他吗?
答案 0 :(得分:8)
可以考虑两种类型的死锁:
<强> 1。资源死锁
当进程尝试获取对设备,文件,锁,服务器或其他资源的独占访问权时发生。
在资源死锁模型中,进程会一直等到收到它请求的所有资源。
资源模型也称为 AND模型。在此模型中,当且仅当存在等待进程的循环时才会发生死锁,每个循环都依赖于循环中的下一个进程来进行。
可能的情况:交易处理方案
<强> 2。通讯死锁
还称为通信死锁模型,当进程A尝试向进程B发送消息时发生,进程B尝试向正在尝试向其发送消息的进程C发送消息甲
通信死锁模型也称为 OR模型。
显然,它很容易满足循环等待条件的死锁。
可能的情况:消息传递方案
希望这对你有用并满足提问者。