12.2.4 并发控制技术

2025-08-04 10:48:45 更新

并发事务如果对数据读写时不加以控制,会破坏事务的隔离性和一致性。为了保持事务的隔离性,系统必须对事务之间的相互作用加以控制,最典型的方式是要求对数据对象以互斥的方式进行访问,即当一个事务访问某个数据对象时,其他事务都不能更新该数据对象。最常用的控制的手段就是加锁,该方法是只允许事务访问当前持有锁的数据项。


锁名

简称


1

共享锁(Share Locks, S锁)

读锁

用于对数据进行读操作时进行锁定。

事务T对数据D加上了S锁后,

事务T:只能读不能修改数据D

其他事务:可以再对数据D加S锁来读取,不能加X锁修改

2

排它锁(Exclusive Locks, X锁)

写锁

用于对数据进行写操作时进行锁定。

事务T对数据D加上X锁后

事务T:可以读取和修改数据D

其他事务:不能读和修改数据D。在事务T释放X锁前,对数据D不能再加任何锁,