如何防止死锁

死锁是编程逻辑上的一个必须要考虑的问题,否则一旦发生,将造成严重的后果,那么到底该如何避免死锁呢?

操作方法

  • 01

    在软件领域中,线程A需要资源X,而线程B需要资源Y,而双方都掌握有对方所要的资源,这种情况称为死锁(deadlock),或死亡拥抱(the deadly embrace)。在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。

  • 02

    使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务; (细化处理逻辑,执行一段逻辑后便回滚或者提交,然后再执行其它逻辑,直到事物执行完毕提交)

  • 03

    设置死锁超时参数为合理范围,如:3分钟-10分种;超过时间,自动放弃本次操作,避免进程悬挂;

  • 04

    在正式版本之前,对所有的脚本和SP(Storage Procedure)都要仔细测试,也就是说,在正式上线前,需要经过严格的逻辑测试

  • 05

    对于SQL SERVER数据库,一般不要修改SQL SERVER事务的默认级别,而且不推荐强行加锁

  • 06

    另外,就是要养成良好的编程习惯,做到能优化程序,检查并避免死锁现象出现;在SQL SERVER中,针对所有的SP都要有错误处理(通过@error)

(0)

相关推荐

  • 如何预防系统进程死锁具体该怎么操作

    预防死锁的根本办法就是要使死锁产生的4个必要条件之一不存在。下面来分析一下破坏这些条件的可能性。 破坏互斥条件 破坏互斥条件即允许多个进程同时访问资源。由于多数资源的必须互斥访问这一固有特性不能改变, ...

  • 系统进程死锁是什么原因如何让进程不死锁

    如果我们的电脑有多个程序在同时进行,肯定会出现竞争得到一定数据资源的情况,而此时资源如果不够用便会进入等待的状态。果所申请的资源被其他等待进程占有,那么该等待进程有可能永远处于等待状态而无法改变该状态 ...

  • 解开硬盘逻辑死锁的一种有效方法

    一·序言 不知道你是否曾碰到过从软盘和硬盘都启动不了计算机的情形?一般计算机的硬盘分区表被病毒感染后,若不能启动机子,通常从软盘可以启动。但在严重的情形下 ,不但从硬盘不能启动机子,就是从软盘也不能启 ...

  • 系统进程死锁的预防措施有什么

    预防死锁的根本办法就是要使死锁产生的4个必要条件之一不存在。下面来分析一下破坏这些条件的可能性。 破坏互斥条件 破坏互斥条件即允许多个进程同时访问资源。由于多数资源的必须互斥访问这一固有特性不能改变, ...

  • 错误 '80004005' 死锁在 lock 资源上原因

    Microsoft OLE DB Provider for SQL Server 错误 '80004005' 事务(进程 ID)与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请 ...

  • 系统进程死锁的预防措施

    预防死锁的根本办法就是要使死锁产生的4个必要条件之一不存在。下面来分析一下破坏这些条件的可能性。 破坏互斥条件 破坏互斥条件即允许多个进程同时访问资源。由于多数资源的必须互斥访问这一固有特性不能改变, ...

  • 系统进程死锁产生的原因

    系统进程死锁产生的原因

  • 如何预防系统进程死锁

    预防死锁的根本办法就是要使死锁产生的4个必要条件之一不存在。下面来分析一下破坏这些条件的可能性。 破坏互斥条件 破坏互斥条件即允许多个进程同时访问资源。由于多数资源的必须互斥访问这一固有特性不能改变, ...

  • 在Linux平台下分析死锁问题的方法

    死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远 ...