问题 单项选择题

若事务T1对数据A已加排他锁,那么其他事务对数据A______。

A.加共享锁、加排他锁都成功
B.加排他锁成功,加共享锁失败
C.加共享锁、加排他锁都失败
D.加共享锁成功,加排他锁失败

答案

参考答案:C

解析: 并发事务如果对数据读写时不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其他事务对数据的读取。在并发控制中引入两种锁分别为排他锁(Exclusive Locks,X锁)和共享锁(Share Locks,S锁)。
排他锁又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T对数据A进行读取和修改,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁。
共享锁又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改。其他事务可以再对数据A加S锁来读取,只要数据A上有S锁,任何事务都只能再对其加S锁读取而不能加X锁修改。因此正确答案是D。

单项选择题
单项选择题