如何防止死锁
死锁是编程逻辑上的一个必须要考虑的问题,否则一旦发生,将造成严重的后果,那么到底该如何避免死锁呢?
操作方法
- 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)