什么是死锁类型?

时间:2014-12-12 17:28:11

标签: multithreading deadlock

根据标题,死锁的类型是什么?最近我被问到这个问题,但是我只知道死锁的类型,当线程A正在等待线程B获取的锁,而线程B正在等待线程A获取的锁。是否存在还有其他吗?

1 个答案:

答案 0 :(得分:8)

可以考虑两种类型的死锁:

<强> 1。资源死锁

当进程尝试获取对设备,文件,锁,服务器或其他资源的独占访问权时发生。

资源死锁模型中,进程会一直等到收到它请求的所有资源。

资源模型也称为 AND模型。在此模型中,当且仅当存在等待进程的循环时才会发生死锁,每个循环都依赖于循环中的下一个进程来进行。

可能的情况:交易处理方案

<强> 2。通讯死锁

还称为通信死锁模型,当进程A尝试向进程B发送消息时发生,进程B尝试向正在尝试向其发送消息的进程C发送消息甲

通信死锁模型也称为 OR模型

显然,它很容易满足循环等待条件的死锁。

可能的情况:消息传递方案

希望这对你有用并满足提问者。