use*_*116 2 multithreading deadlock
根据标题,死锁的类型是什么?最近我被问到这个问题,但是我只知道死锁的类型,当线程A正在等待线程B获取的锁,而线程B正在等待线程A获取的锁.是否存在任何其他?
可以考虑两种类型的死锁:
1.资源死锁
在进程尝试获取对设备,文件,锁,服务器或其他资源的独占访问时发生.
在资源死锁模型中,进程一直等到它已收到它请求的所有资源.
资源模型也称为AND模型.在此模型中,当且仅当存在等待进程的循环时才会发生死锁,每个循环都依赖于循环中的下一个进程来进行.
可能的情况:事务处理场景
2.通讯死锁
也称为通信死锁模型,当进程A尝试向进程B发送消息时发生,进程B尝试向正在尝试向A发送消息的进程C发送消息.
通信死锁模型也称为OR模型.
显然,它很容易满足发生死锁的循环等待条件.
可能的情况:消息传递方案
希望这对你有用并满足提问者.
| 归档时间: |
|
| 查看次数: |
10043 次 |
| 最近记录: |