并发执行的三个事务T1 、T2 和T3,事务T1对数据D1加了共享锁,事务T2、

考试题库2022-08-02  56

问题 并发执行的三个事务T1 、T2 和T3,事务T1对数据D1加了共享锁,事务T2、 T3分别对数据D2 、D3加了排它锁,之后事务T1对数据(请作答此空);事务T2对数据( )。A.D2 、D3 加排它锁都成功B.D2 、D3 加共享锁都成功C.D2 加共享锁成功 ,D3 加排它锁失败D.D2 、D3 加排它锁和共享锁都失败

选项 A.D2 、D3 加排它锁都成功
B.D2 、D3 加共享锁都成功
C.D2 加共享锁成功 ,D3 加排它锁失败
D.D2 、D3 加排它锁和共享锁都失败

答案 D

解析 并发事务如果对数据读写时不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其他事务对数据的读取。在并发控制中引入两种锁:排它锁 (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锁修改。
转载请注明原文地址:https://tihaiku.com/congyezige/2419347.html

最新回复(0)