共享锁 ShareLock
共享锁又称为读锁。即读取操作时创建的锁。其他用户可以并发的读取数据。
若事务T对数据A加上共享锁,则事务T只能读A; 其他事务也只能对数据A加共享锁,而不能加排它锁,直到事务T释放A上的S锁。
这就保证了其他事务可以读A,但是在事务T释放A上的共享锁之前,不能对A做任何修改。
排它锁 ExclusiveLock
若事务T对数据对象A加上排它锁,则只允许T读取和修改数据A,其他任何事务都不能再对A加任何类型的锁,直到事务T释放X锁。
它可以防止其他事务获取资源上的锁,直到事务末尾释放锁
共享锁和排它锁的区别
- 如果事务T对数据A加上共享锁,则其他事务只能对A再加共享锁,不能加排它锁。只有事务T可以对A进行读取和修改,其他事务只能读取数据而不能修改数据。
- 如果事务T对数据A加上排它锁,只有事务T可以对A进行读取和修改,其他任何事务都不能对A进行读取和修改。
网友评论