Multithreading 什么类型的死锁?

Multithreading 什么类型的死锁?,multithreading,deadlock,Multithreading,Deadlock,根据标题,死锁的类型是什么?最近有人问我这个问题,但我只知道死锁的类型,当线程A正在等待线程B获得的锁,而线程B正在等待线程A获得的锁。还有其他死锁吗?可以考虑两种类型的死锁: 1。资源死锁 当进程试图以独占方式访问设备、文件、锁、服务器或其他资源时发生 在资源死锁模型中,一个进程等待,直到它收到它请求的所有资源 资源模型也称为AND模型。在这个模型中,当且仅当存在一个等待进程的循环时,死锁才会发生,每个进程都依赖于该循环中的下一个进程来取得进展 可能的情况:事务处理场景 2。通信死锁 也称为通

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

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

1。资源死锁

当进程试图以独占方式访问设备、文件、锁、服务器或其他资源时发生

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

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

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

2。通信死锁

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

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

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

可能的情况:消息传递场景


希望这对你有用,并使提问者满意。

自我僵局?线程A忘记它已经锁定了一个资源并试图重新锁定它?或者线程A正在等待线程B已经锁定的资源,而线程B从未释放它。维基百科页面可能会帮助您: