搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
正经夜光杯
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
python中的split()、rsplit()、splitlines()用法比较
2
史上最全springboot+vue3+element-plus代码实现web登录页面,包含maven配置_springboot + vue3 + element-plus
3
Spark回归分析与特征工程_spark线性回归模型
4
php小h站视频系统源码,苹果cms v10x 原创自适应x站h站源码 视频模板 带试看功能 带自动采集YM源码...
5
来面试阿里测开工程师,HR问我未来3-5年规划,我给HR画个大饼。_面试测开岗的职业规划
6
银河麒麟v10离线安装rancher_麒麟x86 离线安装 rancher
7
【从零搭建k8s集群并构建一个devops微服务,详细教程】_集群部署微服务
8
Rabbitmq集成与使用_集成rabbitmq
9
持续集成与版本号管理_持续集成中版本号
10
Spring-Boot+Neo4j+节点之间关系网的搭建和查询_springboot 用cypher获取neo4j网页code中的response结果
当前位置:
article
> 正文
11.4 活锁和死锁
作者:正经夜光杯 | 2024-06-30 08:35:00
赞
踩
活锁
思维导图:
11.4 活锁和死锁
11.4.1 活锁
活锁的定义
:
活锁发生在多个事务反复因为锁资源竞争而互相等待,但没有事务能够继续执行。
活锁的产生
:
例子:事务T₁锁定数据R,事务T₂等待R。当T₁释放R后,系统先批准另一个事务T₃的锁请求,T₂继续等待。这种模式可能导致T₂永远等待。
避免活锁的方法
:
先来先服务策略
:按照事务请求锁的顺序进行排队,一旦锁被释放,就按顺序批准下一个请求。
11.4.2 死锁
死锁的定义
:
死锁是指多个事务互相等待对方持有的锁资源,导致所有涉及事务都无法继续执行的情况。
死锁的产生
:
例子:事务T₁等待事务T₂持有的锁,同时T₂等待T₁持有的锁,导致两个事务都无法继续执行。
避免死锁的策略
:
死锁预防
:如超时机制,锁定顺序等。
死锁检测与恢复
:系统定期检测死锁并选择牺牲某些事务以解锁。
注意点
理解活锁和死锁的区别
:活锁涉及事务无限期等待,而死锁涉及事务相互阻塞。
避免策略的重要性
:了解不同的避免策略以减少或消除活锁和死锁的风险。
易错点
混淆活锁和死锁
:可能会混淆活锁和死锁的概念和特征。
忽视避免策略
:在数据库设计和操作中可能会忽视实施有效的活锁和死锁避免策略。
过度依赖死锁检测
:可能过分依赖死锁检测机制,而忽略更主动的预防措施。
11.4.2 死锁
1.
死锁的定义
概念
:多个事务因为互相等待对方持有的锁资源而导致都无法继续执行的局面。
2.
死锁的产生
示例
:事务T₁锁定数据R,事务T₂锁定数据R₂,然后T₁请求锁定R₂,T₂请求锁定R,导致彼此等待。
3.
死锁预防
一次封锁法
:事务一次性锁定所有需要的数据对象,避免死锁但可能降低并发度。
顺序封锁法
:按预定顺序锁定数据对象,避免死锁但在实际操作中难以维护。
4.
死锁的诊断与解除
超时法
:基于等待时间判断死锁,易于实现但可能误判。
等待图法
:构建事务等待图,通过检测回路来判断死锁。
解除死锁
:选择代价最小的事务进行撤销,释放锁资源。
注意点
理解死锁的严重性
:强调死锁对系统性能的影响和需要采取的预防措施。
死锁预防和解除策略
:了解不同的死锁预防和解除策略及其应用场景。
易错点
死锁预防策略的过度应用
:过度使用死锁预防策略可能导致系统并发度降低。
误解死锁的诊断方法
:可能会误判死锁或不适当地选择解除死锁的事务。
忽视死锁的动态性
:在动态变化的数据库环境中,死锁的情况可能频繁变化,需要适时调整策略。
这一节的笔记强调了死锁在数据库并发控制中的重要性,特别是在避免资源浪费和保持事务运行顺畅方面的作用。理解死锁的概念以及如何预防和解除死锁对于维护高效和稳定的数据库系统至关重要。
重点
活锁的定义
:活锁发生时,事务不断地重复尝试获取锁,但由于其他事务的相互竞争,它们都无法继续进行。
活锁的产生
:例如,事务T₁锁定资源R后,事务T₂等待R;当T₁释放R且系统允许另一个事务T₃获得R的锁时,T₂继续等待,可能导致T₂永远在等待。
3.
避免活锁的方法
先来先服务策略
:根据事务请求锁的时间顺序进行排队,保证公平性。
难点
理解活锁产生的机制
:活锁通常是由于系统资源分配策略不当造成的。
区分活锁和死锁
:活锁涉及事务在等待时不断尝试,而死锁是事务完全停滞。
易错点
混淆活锁和死锁
:可能会将活锁误解为死锁,两者虽然都涉及锁等待,但表现形式和解决方法不同。
错误的避免策略
:在尝试避免活锁时,可能过度依赖先来先服务策略,而忽视了对事务优先级或其他资源分配策略的考虑。
忽视活锁的影响
:可能低估活锁对系统性能的影响,尤其是在高并发环境中。
重点
死锁的定义
:多个事务由于互相等待对方持有的锁而导致无法继续执行。
死锁的产生原因
:事务互相锁定对方需要的资源,形成等待循环。
死锁预防方法
:
一次封锁法
:一次性锁定所有需要的资源。
顺序封锁法
:按照一定顺序锁定资源。
4.
死锁的诊断与解除
超时法
:基于事务等待时间超过阈值判断死锁。
等待图法
:通过检测事务等待图中的循环来判断死锁。
解除策略
:撤销代价最小的事务以解锁。
难点
理解死锁产生的机制
:明白事务如何通过互相等待造成死锁。
选择适当的死锁预防方法
:根据不同场景选择合适的死锁预防策略。
易错点
死锁预防方法的不当应用
:过度使用某种死锁预防方法可能导致系统并发性能降低。
误判死锁情况
:使用超时法可能会因为非死锁原因导致的延迟误判为死锁。
处理死锁的方法选择
:在解除死锁时,错误地选择撤销事务可能导致更大的资源浪费或业务影响。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/正经夜光杯/article/detail/771987
推荐阅读
article
python
中
int
的
取值
范围
_
int
32
的
取值
范围
是多少?...
int
32
的
数值
取值
范围
为“-2147483648”到“2147483647”;而
int
64
的
数值
取值
范围
为“-9223...
赞
踩
article
在
Android
上部署
自定义
YOLOv8
教程_
yolov8
android
...
本文介绍了在
Android
设备上部署带有
自定义
数据集的
YOLOv8
。_
yolov8
android
yolov8
a...
赞
踩
article
Git
分支
5-
变基
_
将
什么
变基
到
什么
是
什么
意思...
电子书链接:
变基
在
Git
中整合来自不同
分支
的修改主要有两种方法:merge 以及 rebase。 在本节中我们将学习...
赞
踩
article
每日一
题
:C
语言
经典例
题
之
韩信点兵
_
c
语言
韩信点兵
问
题
...
每日一
题
,干!!!
_
c
语言
韩信点兵
问
题
c
语言
韩信点兵
问
题
题
目描述 淮安民间传说着一则故...
赞
踩
article
Ridis
持久
化_
resids
持久
化...
Redis是一个高性能的key-value内存数据库。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别...
赞
踩
article
Socket
网络
编程
中
的
常见
应用
场景与
实例
分析...
从简单
的
Echo服务器到复杂
的
聊天
应用
和文件传输,
Socket
提供了强大
的
功能和灵活性。通过本文
的
介绍和
实例
分析,希望大...
赞
踩
article
X509
证书
详解...
本文源于两篇英文文档,将其合二为一,翻译过程参考了网上的其它翻译以求更加准确,在此对这些翻译文档的作者表示感谢!文中介绍...
赞
踩
article
超好用的AI
插件
—
Fitten
code
【
IDEA
和 VS
code
安装】_
fitten
code
...
Fitten
Code是由非十大模型驱动的AI编程助手,它可以自动生成代码,提升开发效率,帮您调试Bug,节省您的时间。...
赞
踩
article
基于
神经网络
的
手写
汉字
提取
与
书写
评分
模型研究...
系统
的
功能需求仅仅可以确定系统
的
任务,但是为了让系统
的
能够更长久且无误
的
运行,还需要进行系统
的
性能需求分析。用户在进行功...
赞
踩
article
2023
年春节祝福第二弹——送你
一只
守护
兔
,让它温暖每一个你【
h
tml
5
css3
】画会动的小
兔
子,...
2023
年春节祝福第二弹———送你
一只
守护
兔
,她会像你爱她一样爱着你,她并不厉害,但即使失败了,小小的她也会再度勇敢站起...
赞
踩
article
Streamlit
讲解专栏(
一
):
安装
以及初步
应用
_
streamlit
安装
...
Streamlit
是
一
个用于快速构建和部署数据
应用
的Python库。它的设计理念是使数据科学家能够快速而简便地创建交互式...
赞
踩
article
Hadoop
技术在
协同
过滤
就业推荐系统中的应用及推荐原理解析_
基于
用户
协同
过滤
算法是在哪
计算
的had...
这些数据将作为我们系统的基础数据集。_
基于
用户
协同
过滤
算法是在哪
计算
的
hadoop
基于
用户
协同
过滤
算法是在哪
计算
的had...
赞
踩
article
基于51
单片机
的
FRID
智能
门禁系统
(
RFID
,12864,
AT24C02
,步进电机......)_...
门禁系统
需要
的
器件STC89C52,MFRC-522
RFID
射频模块,
AT24C02
存储电路,5v步进电机,5v转3....
赞
踩
article
英特尔
处理器
被曝出“
Downfall
”
漏洞
:可窃取
加密
密钥
_8月12日消息,谷歌的一位高级
研究
科学家
...
今日,谷歌的一位高级
研究
科学家
利用
一个
漏洞
设计了一种新的CPU攻击方法,该
漏洞
可影响多个
英特尔
微
处理器
系列,并允许窃取密...
赞
踩
article
(国内可用
,
24年6月更新)Chat
GPT
3.5
和
4.0
还有
GPT
-
4o
_
chatgpt
最新
是
4....
在刚刚结束的Open AI发布会上
,
Mira介绍了Chat
GPT
的新动向:1、Chat
GPT
即将更新桌面客户端和新的...
赞
踩
article
Py之
streamlit
:
streamlit
的简介
、
安装
、
使用方法之详细攻略_
pipy
stream...
Py之
streamlit
:
streamlit
的简介
、
安装
、
使用方法之详细攻略目录
streamlit
的简介streaml...
赞
踩
article
推荐
系统
的
评测_如何
测试
推荐
系统
...
推荐
系统
的
任务就是联系用户和信息,一方面帮助用户发现对自己有价值
的
信息,另一方面让信息能够展现在对它感兴趣
的
用户面前,从...
赞
踩
article
JQuery
中使用
mouseover
事件
和
mouseout
事件
作用在同一个
元素
上时
出现
闪烁现象_
js
...
前提:实现一个电影网站中的关于选定图片
出现
一个新的div容器展示具体电影详情的功能(通过使用visibility属性隐藏...
赞
踩
article
如何以
银行
客户
为
中心实现
自动化
,
并创造更顺畅的
客户
体验?...
在当今社会
,
客户
已习惯于通过几次点击就能迅速得到所需
,
但
银行
业的
客户
旅程仍然因
为
延误、错误、隐藏费用和资金可获取性问题而...
赞
踩
article
Redis
持久
化(
RDB
、AOF)_
redis
持久
化
aof
和
rdb
...
过期的数据不再写入文件;**无效的命令不再写入文件: ** 如有些数据被重复设值(set ydq 123, set yd...
赞
踩
相关标签
python中int的取值范围
YOLO
深度学习
python
机器学习
c语言
开发语言
数据结构
算法
redis
网络
java
android
intellij-idea
vscode
IDEA
fitten code
插件
神经网络
人工智能
手写汉字提取
书写评分
评分模型
毕业设计