首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
zip
图片
egmentfault
文件
cdn
excel
gitlab
websocket
restful
pthread
arm
gpu
jira
64bit
以太坊
soap
intel
加密
乱码
安全
final
运维
比特币
mapkit
xss
编译
搜索
gps
sas
搜狗搜索
职场
web3
抓站
地图
wifi
数字化
csrf
service
开发者
编程
push
homebrew
区块链
架构
udp
验证码
360搜索
graphql
分支结构
outlook
rpc
sass
sdk
login
amazon
日志
扩展
diff
cloud
cas
composer
数据统计
keyboard
repository
压缩
lucene
seo
https
branch
架构设计
二维码
pdf
key
csv
智能合约
程序员
cpu
native
widget
当前位置:
开发笔记
>
程序员
> 正文
死锁发生的条件和预防
作者:夏石兵 | 来源:互联网 | 2023-05-18 20:48
所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此
所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。
虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须具备一定的条件,死锁的发生必须具备以下四个必要条件。
1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。
2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。
3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
4)环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,···,Pn}中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源。
在系统中已经出现死锁后,应该及时检测到死锁的发生,并采取适当的措施来解除死锁。目前处理死锁的方法可归结为以下四种:
1) 预防死锁。
这是一种较简单和直观的事先预防的方法。方法是通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或者几个,来预防发生死锁。预防死锁是一种较易实现的方法,已被广泛使用。但是由于所施加的限制条件往往太严格,可能会导致系统资源利用率和系统吞吐量降低。
2) 避免死锁。
该方法同样是属于事先预防的策略,但它并不须事先采取各种限制措施去破坏产生死锁的的四个必要条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁。
3)检测死锁。
这种方法并不须事先采取任何限制性措施,也不必检查系统是否已经进入不安全区,此方法允许系统在运行过程中发生死锁。但可通过系统所设置的检测机构,及时地检测出死锁的发生,并精确地确定与死锁有关的进程和资源,然后采取适当措施,从系统中将已发生的死锁清除掉。
4)解除死锁。
这是与检测死锁相配套的一种措施。当检测到系统中已发生死锁时,须将进程从死锁状态中解脱出来。常用的实施方法是撤销或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态,以继续运行。死锁的检测和解除措施,有可能使系统获得较好的资源利用率和吞吐量,但在实现上难度也最大。
安全
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
安全
尝试连接到浏览器实例。(Flutter Web)
我正在尝试在网络上运行我的第一个Flutter代码。我按照 ...
[详细]
蜡笔小新 2024-09-30 22:00:43
安全
SSL协议、TLS协议,使用哪一种更安全?
在金融银行业,保护机密信息的安全至关重要。由于财务记录完全通过在线数据库维护,因此实施保护客户、银行和金融机构免受黑客攻击的安全功能比以往任何时候都更加重要。安全套接字层(SSL) ...
[详细]
蜡笔小新 2024-09-30 21:45:53
安全
WebBrowser控件(1)
WindowsPhone7内置了一个强大的网络浏览器,该浏览器的内核是基于桌面版的InternetExplorer7(Mango版基于InternetE ...
[详细]
蜡笔小新 2024-09-30 16:56:38
安全
微信聊天记录怎么恢复?快速找回删除的微信记录
微信聊天记录怎么恢复?其实方法有很多,但是大多数小伙伴都不知道该怎么恢复,过去恢复微信聊天记录都是人工恢复,在大数据时代之下大家越来越重视自身的数据安全,所以也会有小伙伴担心人工恢 ...
[详细]
蜡笔小新 2024-09-30 16:55:26
编译
Java开发框架!Alibaba高并发业务秒杀系统落地实战文档,砥砺前行!
接口概述:接口是Java语言中的一种引用类型,是方法的集合,所以接口的内部主要就是定义方法,包含常量,抽象方法(JDK ...
[详细]
蜡笔小新 2024-09-30 16:51:55
xss
6个常见的 PHP 安全性攻击实例和阻止方法_php实例
这篇文章主要介绍了6个常见的PHP安全性攻击实例和阻止方法,有对这方面感兴趣的小伙伴 ...
[详细]
蜡笔小新 2024-09-30 15:54:56
搜索
泛圈企业云盘:打造高效灵活的协同平台提高企业办公效率
云计算作为一种新的模式,给企业信息化的发展带来了巨大的变化。其中,企业云盘是一种可以快速被接受的企业云应用,因为在企业云盘存储中,所有云服务带来的风险都会大大降低。将文档管理系统本 ...
[详细]
蜡笔小新 2024-09-30 14:58:51
安全
三层交换机的原理和设计
三层交换机的原理和设计1.引言传统路由器在网络中起到隔离网络、隔离广播、路由转发以及防火墙的作业,并且随着网络的不断发展,路由器的负荷也在迅速增长。其中一个重要原因是出于安全和管理方便等方 ...
[详细]
蜡笔小新 2024-09-30 14:57:10
运维
IT管理类培训,你想了解的全都在这里
IT类的培训,主要分为技术类和管理类。不断有小伙伴问起各种培训的价值,内容和对自己职业发展的帮助,希望这篇帖子可以给大家一些启发。首先用 ...
[详细]
蜡笔小新 2024-09-30 14:42:20
安全
局限性_Scrum框架的局限性
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Scrum框架的局限性相关的知识,希望对你有一定的参考价值。在很多工作坊的讨论中, ...
[详细]
蜡笔小新 2024-09-30 14:41:28
运维
异构服务器 微服务_微服务架构的核心要点和实现原理
摘要:本文中,我们将进一步理解微服务架构的核心要点和实现原理,为读者的实践提供微服务的设计模式,以期让微服务在读者正在工作的 ...
[详细]
蜡笔小新 2024-09-30 14:35:15
安全
Oasis 公布 Q3、Q4 路线图 | 推动 Sapphire 成为隐私王冠上闪耀明珠
Oasis 公布 Q3、Q4 路线图 | 推动 Sapphire 成为隐私王冠上闪耀明珠 ...
[详细]
蜡笔小新 2024-09-30 13:53:16
搜索
为什么我的WORD无法用,我该怎么办
以前是不是应该可以用?有可能是中了病毒,用杀毒软件杀一下试试,也有可能是系统文件被破坏了,可以重新安装一下VISUAL Bascic,从网上的搜索引擎搜一下就能找到无法初始化 ...
[详细]
蜡笔小新 2024-09-30 13:45:37
运维
lora物联网开发教程(物联网lora特点)
长距离星型架构,由于长距离连接性,从而减少了电池寿命。这个协议采用了阿罗哈法。在一个网状网络或者一个异步网络中,例如蜂窝网,结点必须频繁的被唤醒,来同步网络和检查消息。这种同步,大 ...
[详细]
蜡笔小新 2024-09-30 13:19:34
安全
java物流管理系统的设计与实现教务管理系统的设计与实现
Java物流管理系统与教务管理系统定制系统的设计与实现技术介绍:本项目使用了SpringBoot技术构建简化了开发减少了各种繁琐的额配置,采用Shir ...
[详细]
蜡笔小新 2024-09-30 12:52:57
夏石兵
这个家伙很懒,什么也没留下!
Tags | 热门标签
zip
图片
egmentfault
文件
cdn
excel
gitlab
websocket
restful
pthread
arm
gpu
jira
64bit
以太坊
soap
intel
加密
乱码
安全
final
运维
比特币
mapkit
xss
编译
搜索
gps
sas
搜狗搜索
RankList | 热门文章
1
tomcat在eclipse中启动时就会有这个问题,求大神解答!!
2
debian 运行 sudo 时提示“xxx is not in the sudoers file”,怎么破?
3
Linux删除swap里的指定文件的方法
4
如何自定义Ubuntu系统
5
linux系统中的清屏命令
6
华为移动路由今日开启预售:一碰连网 有电就有WiFi
7
屏幕选择了旋转就黑屏 ArchLinux KDE桌面探路
8
10年经验的纤亿通网络工程师告诉你有源波分和无源波分到底怎么选最合适!
9
TPLINK WR886N家用路由器手机配置方法,图文教程,新手必看
10
tar命令打包时为什么会打包文件自身?
11
APS生产排产在包装行业的应用
12
交换机故障引发的血案
13
中国移动CMCC无线WIFI免费使用步骤?:cmcc路由器设置
14
Ubuntu(Linux)腾达U12网卡驱动的离线安装
15
图解Linux命令之tr命令
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有