共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。
排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。
简要说明为什么会发生死锁?解决死锁的主要方法是什么?
若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁
解决死锁的方法应从预防和解除的两个方面着手:
(1)死锁的预防方法:①要求每一个事务必须一次封锁所要使用的全部数据(要么全成功,要么全不成功)②规定封锁数据的顺序,所有事务必须按这个顺序实行封锁。
(2)允许死锁发生,然后解除它,如果发现死锁,则将其中一个代价较小的事物撤消
,回滚这个事务,并释放此事务持有的封锁,使其他事务继续运行。
- 浏览: 419842 次
- 性别:
- 来自: 北京
最新评论
-
masuweng:
好好好,有时间了练习下
使用Java混淆工具yguard -
shengshihouzhe:
第一个eg实现的应该是循环栅栏,不是计数器
Java Phaser使用 -
yukaizhao:
推荐一个很全的guava教程 http://outofmemo ...
google guava cache 处理 -
yanqingluo:
谢谢分享,已关注.
BTrace入门及使用实例 -
luoxiaohui_java:
谢谢分享!
这么好的文章,怎么没人回复呢。
ibm was nd websphere 集群
相关推荐
共享行排他锁是一种介于行级共享锁和行级排他锁之间的锁,它允许其他事务添加行级共享锁,但不允许添加行级排他锁。拥有 SRX 锁的事务可以执行更新操作,但其他事务只能进行 `SELECT` 查询。加锁语句为 `Lock Table ...
本文将详细讲解几种常见的锁机制:悲观锁、乐观锁、共享锁和排他锁,并简要介绍分布式锁以及锁降级原理。 1. **悲观锁**: 悲观锁是一种保守的策略,它假设在读取数据时,数据极有可能被其他线程修改。因此,悲观...
在MySQL的InnoDB引擎中,支持行级锁(Row Locks)、表级锁(Table Locks),以及共享锁(Shared Locks)和排他锁(Exclusive Locks)。行级锁通过索引实现,如果SQL语句没有利用索引,则会升级为表锁。 行锁具有...
一旦一个事务获取了排他锁,其他事务就无法再获取共享锁或排他锁,直到持有排他锁的事务提交或回滚。 数据库锁的级别主要包括行级锁和表级锁: 1. **行级锁**:锁定的是数据表中的一行记录,如在Oracle中,行级锁...
FOR UPDATE`),或者加行级排他锁,都将被阻止。 2. 排它锁(X锁):排它锁是最严格的锁,它提供独占的写权限,不允许其他事务进行任何读或写操作。通过`Lock Table TableName In Exclusive Mode`语句可以设置。...
共享锁(S)允许拥有共享锁的事务读取该行数据,而排他锁(X)允许拥有排他锁的事务修改或删除该行数据。此外,InnoDB 存储引擎还支持意图锁,意图锁是表级锁,表明事务在后期会对该表的行施加共享锁或者排他锁。...
例如,案例1中,当事务T1执行UPDATE操作时,需要先获取排他锁,此时如果其他事务尝试加共享锁或排他锁,都会被阻塞,直到T1完成更新并释放锁。 死锁是并发控制中可能出现的一种现象,如案例4所示。当两个或更多事务...
数据库相关的笔记
拥有排他锁的事务可以读取和修改锁定的行,但在此期间,其他任何事务都无法获取共享锁或排他锁,从而阻止了其他事务对该行的读写操作。这种机制确保了在事务完成前,不会有其他事务对其进行修改。 数据库系统通常...
首先,数据库锁分为两大类:排他锁(X)和共享锁(S)。排他锁允许持有者对锁定资源进行读写操作,但不允许其他用户进行任何操作。共享锁则允许多个用户同时读取同一资源,但不允许写操作。在Oracle数据库中,锁...
- **共享意图排他锁 (SIX)**:表示事务已获得共享锁,并打算进一步升级为排他锁。 ##### 2. 锁的层次结构 锁可以作用于不同的层次,如页级锁、表级锁等。 - **表级锁**:整个表被锁定,效率低但能防止所有并发...
只有在针对指定表的所有 DML 事务结束,并且记录上的排他锁以及表上的共享锁都被解除之后,我们才可以获得执行 DDL 命令所需的排他锁。如果无法获取所需的排他锁(通常是因为其他会话已经获得了用于 DML 语句的共享...
在多用户环境下,当多个事务请求访问同一资源时,DB2会根据访问模式自动施加不同类型的锁(如共享锁或排他锁),以协调并控制对数据库资源的并发访问。锁升级是指当数据库系统检测到同一资源上的锁冲突频繁发生时,...
MySQL中的锁大致可以分为两大类:从数据库系统的角度,包括独占锁(排他锁)、共享锁、更新锁以及各种类型的意向锁;从锁的作用范围,可以分为行级锁、表级锁和页级锁等。下面我们将详细讨论这些锁的特性。 1. **...
例如,一个读取共享锁(S)与另一个读取共享锁(S)是兼容的,但与一个排他锁(X)是不兼容的。 #### 五、DB2锁的实现方式 DB2通过以下几种方式实现锁: 1. **死锁检测与避免**:当检测到死锁时,DB2会选择回滚...
在 Sybase 数据库中,锁机制分为两种:共享锁(Shared Lock)和排他锁(Exclusive Lock)。共享锁允许多个事务同时读取同一个资源,而排他锁则排他事务访问该资源。锁机制可以在不同的粒度上生效,包括表锁、页锁和...