死锁预防和死锁避免区别(死锁)
大家好,我是小房,我来为大家解答以上问题。死锁预防和死锁避免区别,死锁很多人还不知道,现在让我们一起来看看吧!
1、在两个或多个任务中,如果每个任务锁定了其他任务试图锁定的资源,此时会造成这些任务永久阻塞,从而出现死锁。
2、例如: 事务 A 获取了行 1 的共享锁。
3、 事务 B 获取了行 2 的共享锁。
4、 现在,事务 A 请求行 2 的排他锁,但在事务 B 完成并释放其对行 2 持有的共享锁之前被阻塞。
5、 现在,事务 B 请求行 1 的排他锁,但在事务 A 完成并释放其对行 1 持有的共享锁之前被阻塞。
6、 事务 A 必须在事务 B 完成之后才能完成,但事务 B 被事务 A 阻塞。
7、这种情况也称为循环依赖关系:事务 A 依赖于事务 B,而事务 B 又依赖于事务 A,从而形成了一个循环。
8、 除非某个外部进程断开死锁,否则死锁中的两个事务都将无限期等待下去。
9、Microsoft SQL Server Database Engine 死锁监视器定期检查陷入死锁的任务。
10、如果监视器检测到循环依赖关系,将选择其中一个任务作为牺牲品,然后终止其事务并提示错误。
11、这样,其他任务就可以完成其事务。
12、对于事务以错误终止的应用程序,它还可以重试该事务,但通常要等到与它一起陷入死锁的其他事务完成后执行。
13、 在应用程序中使用特定编码约定可以减少应用程序导致死锁的机会。
14、有关详细信息,请参阅将死锁减至最少。
15、 死锁经常与正常阻塞混淆。
16、事务请求被其他事务锁定的资源的锁时,发出请求的事务一直等到该锁被释放。
17、默认情况下,SQL Server 事务不会超时(除非设置了 LOCK_TIMEOUT)。
18、因为发出请求的事务未执行任何操作来阻塞拥有锁的事务,所以该事务是被阻塞,而不是陷入了死锁。
19、最后,拥有锁的事务将完成并释放锁,然后发出请求底事务将获取锁并继续执行。
20、 死锁有时称为抱死。
21、 不只是关系数据库管理系统,任何多线程系统上都会发生死锁,并且对于数据库对象的锁之外的资源也会发生死锁。
22、例如,多线程操作系统中的一个线程要获取一个或多个资源(例如,内存块)。
23、如果要获取的资源当前为另一线程所拥有,则第一个线程可能必须等待拥有线程释放目标资源。
24、这就是说,对于该特定资源,等待线程依赖于拥有线程。
25、在数据库引擎 实例中,当获取非数据库资源(例如,内存或线程)时,会话会死锁。
26、 在上图中,对于 Part 表锁资源,事务 T1 依赖于事务 T2。
27、同样,对于 Supplier 表锁资源,事务 T2 依赖于事务 T1。
28、因为这些依赖关系形成了一个循环,所以在事务 T1 和事务 T2 之间存在死锁。
本文到此讲解完毕了,希望对大家有帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
【奈曼旗到通辽多少公里】从奈曼旗到通辽的路程是许多前往两地之间出行的人关心的问题。无论是自驾、乘车还是...浏览全文>>
-
【奈曼旗八仙筒镇】奈曼旗八仙筒镇位于内蒙古自治区通辽市奈曼旗,是该地区重要的农业和畜牧业基地之一。近年...浏览全文>>
-
【奈李是什么水果】“奈李是什么水果”是一个常见的问题,尤其在一些对水果种类不太熟悉的地区,人们可能会对...浏览全文>>
-
【奈何我是什么意思】“奈何我是什么意思”是网络上较为常见的一种提问方式,常用于表达一种无奈、困惑或对某...浏览全文>>
-
【奈何boss又如何剧情简介】《奈何boss又如何》是一部以职场与爱情为主题的都市情感剧,讲述了女主角林小满在...浏览全文>>
-
【奈何boss又如何介绍】一、《奈何boss又如何》是一部以职场为背景的网络小说,讲述了主角在面对强势上司(即...浏览全文>>
-
【钠原子质量】钠是一种常见的金属元素,化学符号为Na,原子序数为11。在化学和物理学中,了解元素的原子质量...浏览全文>>
-
【钠与乙醇反应方程式及现象】钠与乙醇的反应是化学中一个典型的金属与有机物的反应,具有一定的代表性。该反...浏览全文>>
-
【钠和酒精反应的方程式】钠是一种活泼金属,在常温下与多种物质发生反应。其中,钠与酒精(乙醇)的反应是一...浏览全文>>
-
【哪一天是光棍节】“光棍节”是一个在中国逐渐流行起来的非传统节日,虽然它并非官方节日,但在年轻人中有着...浏览全文>>