解决方法
通常,死锁意味着两个或更多实体阻塞某些源,并且它们都不能完成,因为它们以循环方式阻塞源.
一个例子:假设我有表A和表B,我需要在A中进行一些更新,然后B和我决定在使用时锁定它们(这是非常愚蠢的行为,但它现在用于它的目的) .在同一时刻,其他人以相反的顺序做同样的事情 – 首先锁定B,然后锁定A.
按时间顺序,会发生这种情况:
proc1:锁定A.
proc2:锁定B.
proc1:锁定B – 开始等待,直到proc2释放B
proc2:锁定A – 开始等待,直到proc1释放A.
很明显他们都不会完成.那是僵局.
洞更深入,但这只是入口,如果您需要了解更多,请投入时间.在我们的大学里有关于这一点的全部讲座 – 所以不要认为阅读一些文章会让你成为专家;-)