什么是死锁类型?

use*_*116 2 multithreading deadlock

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

Dha*_*ria 8

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

1.资源死锁

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

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

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

可能的情况:事务处理场景

2.通讯死锁

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

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

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

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

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