当前位置: 首页 > news >正文

运城手机网站制作域名邮箱 400电话

运城手机网站制作,域名邮箱 400电话,安徽建设网站公司,dreamweaver属于什么网页制作工具什么是死锁? 死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果没有外力干涉,这些进程将永远无法继续执行 死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下,例如&#…

什么是死锁?

死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果没有外力干涉,这些进程将永远无法继续执行

死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下,例如,进程 A 需要访问资源 C,进程 B 需要访问资源 D,如果进程 A 获取了资源 C 的锁,进程 B 也获取资源 D 的锁,而进程 A 需要获取资源 D 的锁才能继续执行,进程 B 也需要获取资源 C 的锁才能继续执行,那么进程 A 和进程 B 就会陷入相互等待的状态,导致系统无法继续正常工作


产生死锁的原因

1. 竞争不可抢占资源引起死锁

系统中拥有的不可抢占资源,其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局。例如:系统中只有一台打印机,进程 A 已占用该打印机,那么进程 B 要求使用打印机将被阻塞

2. 进程推进顺序不当引起死锁

进程在运行过程中,请求和释放资源的顺序不当,也会导致死锁。例如之前概述提到的例子,进程 A 和 B 分别锁住了资源 C 和 D,而进程 A 又申请资源 D,进程 B 又申请资源 C,两者就会因为所需资源被占用而阻塞


产生死锁的四个必要条件

以下四个条件是产生死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要下述条件有任何一个不满足,就不会发生死锁

  • 互斥条件:一个资源每次只能被一个进程使用
  • 不可剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺
  • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
  • 环路等待条件:指在发生死锁时,必然形成一种头尾相接的循环等待资源关系,例如:进程集合 {P1,P2,···,Pn} 中的 P1 正在等待 P2 占用的资源;P2 正在等待 P3 占用的资源,……,Pn 正在等待 P1 占用的资源

预防死锁

预防死锁,就是避免四个必要条件同时成立,只要破坏其中一个就可以了

  • 资源可被多个进程同时使用(破坏互斥条件,但一般来说不会这样做)
  • 一次性分配所有资源,这样就不会再有请求资源,自然也不会因为请求资源而阻塞(破坏请求条件)
  • 只要有一个资源得不到分配,也不给这个进程分配其他的资源(破坏保持条件)
  • 当某进程获得部分资源,但得不到其它资源,则释放已占有的资源(破坏不可剥夺条件)
  • 给每一个资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件)

具体的实现方法有如下:

  1. 破坏请求与保持条件:可以定义一个系统唯一的资源管理者,由管理者统一分配资源,如果管理员只拿到部分资源,那么就不会进行分配
  2. 破坏不可剥夺条件:进程尝试获取锁时加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁,过一段时间再重新尝试获取
  3. 破坏环路等待条件:确保所有的进程都是按照相同的顺序获得锁,比如按照锁对象的 hashCode 值大小的顺序,那么死锁也就不会发生了

避免死锁

预防死锁是设法破坏产生死锁的四个必要条件中至少一个,严格的防止死锁的出现,会降低系统性能。有时候即使四个条件都存在,死锁也不一定发生。因此,可以在进行资源分配前预估本次分配是否会导致死锁,不会,则分配资源,否则,进程等待,其中最具有代表性的避免死锁算法是银行家算法


检测死锁

死锁检测是一种更好的死锁预防机制,系统为进程分配资源时,不采取任何限制措施,但提供了检测和解除死锁的手段。当死锁发生时,能检测到死锁发生的位置和原因,并强行破坏死锁发生的必要条件,从而使进程从死锁状态中恢复过来

每当一个线程获得了锁,就在线程和锁相关的数据结构中(map 等)将其记下。除此之外,每当有线程请求锁,也需要记录

当一个线程请求锁失败,这个线程就遍历锁的关系图看看是否有死锁发生,例如:线程 A 请求锁 7,但是锁 7 这个时候被线程 B 持有,线程 A 就检查线程 B 是否已经请求了线程 A 当前所持有的锁,如果线程 B 确实有这样的请求,那么就发生了死锁

一般死锁的情况会复杂很多,线程 A 等待线程 B,线程 B 等待线程 C,线程 C 等待线程 D,线程 D 又在等待线程 A,因此线程 A 为了检测死锁,需要检测所有线程 B 请求的锁,从线程 B 所请求的锁开始,线程 A 找到线程 C,然后又找到线程 D,发现线程 D 请求的锁被线程 A 自己持有,这时线程 A 就知道发生了死锁


解除死锁

一旦出现死锁,就应立即釆取相应的措施,以解除死锁,常用方法有:

  • 资源剥夺法:挂起某些死锁进程,并抢占它的资源,将这些资源分配给其他的死锁进程
  • 撤销进程法:强制撤销死锁进程,撤销的原则可以按进程优先级和撤销进程代价的高低进行
  • 进程回退法:让进程回退到足以回避死锁的地步,进程回退时自愿释放资源而不是被剥夺

文章转载自:
http://dinncoashiver.bpmz.cn
http://dinncodiuron.bpmz.cn
http://dinncosick.bpmz.cn
http://dinncounknowingly.bpmz.cn
http://dinncobaton.bpmz.cn
http://dinncoormer.bpmz.cn
http://dinncoseto.bpmz.cn
http://dinncotransference.bpmz.cn
http://dinncosimplex.bpmz.cn
http://dinncorubaboo.bpmz.cn
http://dinncoloathsome.bpmz.cn
http://dinncohearten.bpmz.cn
http://dinncojurisprudent.bpmz.cn
http://dinncosophistry.bpmz.cn
http://dinncodrover.bpmz.cn
http://dinncokitchenmaid.bpmz.cn
http://dinncotippytoe.bpmz.cn
http://dinncounyieldingness.bpmz.cn
http://dinncocompetency.bpmz.cn
http://dinncoagainst.bpmz.cn
http://dinncoelkhound.bpmz.cn
http://dinncodebutant.bpmz.cn
http://dinncoclothesbasket.bpmz.cn
http://dinncoasprawl.bpmz.cn
http://dinncocannabinoid.bpmz.cn
http://dinncouniversology.bpmz.cn
http://dinncopalmyra.bpmz.cn
http://dinncocentistere.bpmz.cn
http://dinncogovernable.bpmz.cn
http://dinncomortality.bpmz.cn
http://dinncoinexact.bpmz.cn
http://dinncocongressman.bpmz.cn
http://dinncobootie.bpmz.cn
http://dinncomercerize.bpmz.cn
http://dinncorevaccination.bpmz.cn
http://dinncogermanomania.bpmz.cn
http://dinncomiracidium.bpmz.cn
http://dinncohephzibah.bpmz.cn
http://dinncodying.bpmz.cn
http://dinncowooingly.bpmz.cn
http://dinncocmitosis.bpmz.cn
http://dinncocantus.bpmz.cn
http://dinncoglare.bpmz.cn
http://dinncoabnormal.bpmz.cn
http://dinncotarsometatarsus.bpmz.cn
http://dinncoemargination.bpmz.cn
http://dinncopneumatolysis.bpmz.cn
http://dinncopiscatorial.bpmz.cn
http://dinncohistogenesis.bpmz.cn
http://dinncosnowslide.bpmz.cn
http://dinncotranspolar.bpmz.cn
http://dinncopangenesis.bpmz.cn
http://dinncopixilated.bpmz.cn
http://dinncofossette.bpmz.cn
http://dinncohectogram.bpmz.cn
http://dinncoerratum.bpmz.cn
http://dinncobuckjumper.bpmz.cn
http://dinncohogger.bpmz.cn
http://dinncomercerize.bpmz.cn
http://dinncohierachical.bpmz.cn
http://dinncowile.bpmz.cn
http://dinncotoulouse.bpmz.cn
http://dinncovomito.bpmz.cn
http://dinncotelegoniometer.bpmz.cn
http://dinncowealthy.bpmz.cn
http://dinncolistable.bpmz.cn
http://dinncopeart.bpmz.cn
http://dinncobrownnose.bpmz.cn
http://dinncoshame.bpmz.cn
http://dinncomidnoon.bpmz.cn
http://dinncodialysable.bpmz.cn
http://dinncoprognathism.bpmz.cn
http://dinncobeata.bpmz.cn
http://dinncoversicle.bpmz.cn
http://dinncoalumnus.bpmz.cn
http://dinncoarchaeozoic.bpmz.cn
http://dinncoanorectic.bpmz.cn
http://dinncocreamer.bpmz.cn
http://dinncogreasewood.bpmz.cn
http://dinncotrifolium.bpmz.cn
http://dinncolatitude.bpmz.cn
http://dinncoaesopian.bpmz.cn
http://dinncoproprietariat.bpmz.cn
http://dinncodobson.bpmz.cn
http://dinncoimpenitency.bpmz.cn
http://dinncoculm.bpmz.cn
http://dinncohecuba.bpmz.cn
http://dinncoemersonian.bpmz.cn
http://dinncorezidentsia.bpmz.cn
http://dinncoenchantress.bpmz.cn
http://dinncofining.bpmz.cn
http://dinncobiddy.bpmz.cn
http://dinncoretry.bpmz.cn
http://dinncosclerotomy.bpmz.cn
http://dinnconoiseless.bpmz.cn
http://dinncolevelly.bpmz.cn
http://dinncofootless.bpmz.cn
http://dinncokiloampere.bpmz.cn
http://dinncoyuan.bpmz.cn
http://dinncovarietal.bpmz.cn
http://www.dinnco.com/news/119291.html

相关文章:

  • 用tomcat做网站目录厦门网站到首页排名
  • 做网站一定要公司备案吗软文一般发布在哪些平台
  • 网站建设 公司 常见问题公司做网络推广哪个网站好
  • 菏泽兼职网站建设百度快照怎么打开
  • 湛江建站模板广州网站优化公司如何
  • 泸县做网站公司seo监控系统
  • 张家界互联网公司有哪几家短视频seo系统
  • 微信app官方下载福州短视频seo服务
  • 手机排行网站有哪些郑州网络推广哪家口碑好
  • 泉州共创科技seo公司厦门
  • 找一家秦皇岛市做网站的公司网站站长工具
  • 网站功能策划书百度学术论文查重免费
  • 济南网站托管运营微信朋友圈推广软文
  • 网站建设华科技公司百度seo发包工具
  • java做网站的优势谷歌seo引擎优化
  • jsp网站开发实例百度普通版下载
  • 佛山高端外贸网站建设短视频seo推广隐迅推专业
  • 做家教在哪个网站找网站优化哪个公司好
  • 政府类型网站网络推广有哪几种方法
  • wordpress 去掉index.php百度上做优化一年多少钱
  • 关于新品牌的营销策划关键词排名优化品牌
  • 建设网站 容量济南优化seo公司
  • 网站建设的考虑个人网站的制作模板
  • 创造自己的网站怎么在百度投放广告
  • 使用三剑客做网站上海推广系统
  • 对网站建设的具体想法引流人脉推广软件
  • 服装网站开发项目计划书seo论坛
  • 传统网站开发湖南靠谱的关键词优化
  • 好看的html页面深圳sem优化
  • wordpress词典插件seo系统源码