如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁后,系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后,系统又批准了T4的请求......T2可能永远等待。
T2再不断的获取锁,我们称此现象为活锁。活锁不像死锁,它有时能够自己解开。预防活锁最简单的方法就是采用先来先服务法。
如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁后,系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后,系统又批准了T4的请求......T2可能永远等待。
T2再不断的获取锁,我们称此现象为活锁。活锁不像死锁,它有时能够自己解开。预防活锁最简单的方法就是采用先来先服务法。