共享锁和排它锁

共享锁(Shared Lock)也叫做读锁(Read Lock),排它锁(Exclusive Lock)也叫做写锁(Write Lock)。
某一资源的读锁是共享的,或是说互补阻塞的。在同一时间,多个用户可以读取同一资源,二互不干扰。
写锁是排他的,也就是说,一个写锁会阻塞其他的读锁和写锁,这是出于安全策略的考虑,在给定的时间里,只有一个用户能写入资源,以防止用户在写操作的同事其他用户读取同一资源。
共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。
获准共享锁的事务只能读取数据,不能修改数据。
排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能在对A加任何类型的封锁。
获准排他锁的事务既能读取数据,也能修改数据。
数据库死锁的原因:若干事务相互等待对方释放封锁,就陷入了无限期等待状态,系统进入死锁。
预防数据库死锁的方法:
1、要求一个事务必须一次性封锁所需要的所有数据(要么全成功,要么全部成功)
2、规定封锁数据的顺序,所有事务必须按照这个顺序实行封锁
解除数据库死锁的方法:
允许死锁发生,然后解除它,如果发现死锁,则将其中一个代价较小的事务撤销,回滚这个事务,并释放此事务持有的封锁,使其他事务继续进行。

此条目发表在other分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据