在数据库管理中,封锁机制被用来解决不可重复读的问题。例如,当事务T1在读取A和B之前,会先对A和B加上共享锁(S锁),这样其他事务只能再对A和B加S锁,而不能加排他锁(X锁),即只能读取A和B,而不能修改。当另一事务T2想要修改B时,因为T1已经对B加了S锁,T2申请对B的X锁会被拒绝,只能等待T1释放B上的锁。T1在验证后再次读取A和B时,即使读取出的B仍然是100,求和结果仍为150,即T1可以重复读取。只有当T1结束并释放了A和B上的S锁后,T2才能获得对B的X锁进行修改。