您好,活锁是指由于某种原因,如频繁的失败尝试、安全限制、网络问题等,导致用户无法成功完成某个操作,而一直陷入无法解锁的状态。活锁与死锁不同,活锁是指计算机程序在运行时出现的一种非常特殊的死循环,而死锁是指系统中出现两个或多个进程互相等待着对方所占有的资源,导致程序无法继续运行,处于僵局状态。
解决活锁问题的方法之一是增加随机性,使其减少繁忙时的尝试次数。
另一种方法是使用时间限制,即当用户尝试解锁一段时间后,系统自动解锁。
由于一系列交叠共享锁不断干扰而被重复拒绝的对排它锁的请求。SQL Server 检测四次拒绝后的状况,并拒绝更多的共享锁。当读事务独占某个表或页(强制写事务无限等待)时也将发生活锁。