问题
单项选择题
两阶段锁协议可以保证并发调度的可串行性。关于两阶段锁协议,下列说法错误的是()。
A.在一个可串行化调度中,并不一定所有事务都必须符合两阶段锁协议
B.如果一个事务遵循两阶段锁协议,则这个事务中的第一个解锁操作必须出现在该事务的最后一个加锁操作之后
C.如果一个事务已经对数据项A加了共享锁,则其他事务不能再对A加任何锁
D.在解锁阶段,事务可以释放任何数据项上的任何类型的锁
答案
参考答案:C
解析:
锁的类型有两种:
①互斥锁(X锁),若事务T获得Q上的X锁,则T可以读取和修改Q,其他事务不能再对Q进行任何操作,直到T释放Q上的锁。
②共享锁(S锁),若事务T获得Q上的S锁,则T可以对Q进行读取操作,但不可以修改。此时,允许其他事务再申请获得Q上的S锁,与T并行读取Q。但在T释放Q上的S锁之前,其他事务不能对Q做任何修改。