很多人都懂一些简单的电脑系统问题的解决方案,但是如何避免死锁的解决思路却鲜为人知,小编前几天就遇到了如何避免死锁的问题,于是准备整理一些如何避免死锁的解决思路,其实只需要按照1:在软件领域中,线程A需要资源X,而线程B需要资源Y,而双方都掌握有对方所要的资源,这种情况称为死锁(deadlock),或死亡拥抱(the deadly embrace)。在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。2:使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务; (细化处理逻辑,执行一段逻辑后便回滚或者提交,然后再执行其它逻辑,直到事物执行完毕提交)的步骤即可,大家一起来看看小编整理的关于如何避免死锁的解决方法:
1:在软件领域中,线程A需要资源X,而线程B需要资源Y,而双方都掌握有对方所要的资源,这种情况称为死锁(deadlock),或死亡拥抱(the deadly embrace)。在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。
2:使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务; (细化处理逻辑,执行一段逻辑后便回滚或者提交,然后再执行其它逻辑,直到事物执行完毕提交)
3:设置死锁超时参数为合理范围,如:3分钟-10分种;超过时间,自动放弃本次操作,避免进程悬挂;
4:在正式版本之前,对所有的脚本和SP(Storage Procedure)都要仔细测试,也就是说,在正式上线前,需要经过严格的逻辑测试
5:对于SQL SERVER数据库,一般不要修改SQL SERVER事务的默认级别,而且不推荐强行加锁
6:另外,就是要养成良好的编程习惯,做到能优化程序,检查并避免死锁现象出现;在SQL SERVER中,针对所有的SP都要有错误处理(通过@error)