关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料
11.4活锁和死锁
封锁技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题
死锁
活锁
11.4.1活锁
事务T1封锁了数据R
事务T2又请求封锁R,于是T2等待。
T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。
T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求……
T2有可能永远等待,这就是活锁的情形
避免活锁:采用先来先服务的策略
当多个事务请求封锁同一个数据对象的时候
按照请求封锁的先后次序对这些事务排毒
该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁
11.4.2死锁