死锁的定义
一个线程无限期在等待另一个线程所占用并且永远不会释放的资源。当线程推进顺序不当或者是竞争资源时会引起死锁。
避免死锁的几个常见方法
1、避免一个
线
程同
时获
取多个
锁
。
2、避免一个
线
程在
锁
内同
时
占用多个
资
源,尽量保
证
每个
锁
只占用一个
资
源。
3、尝试
使用定
时锁
,使用
lock.tryLock
(
timeout
)来替代使用内部
锁
机制。
4、对
于数据
库锁
,加
锁
和解
锁
必
须
在一个数据
库连
接里,否
则
会出
现
解
锁
失
败
的情况。