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

ps做图软件怎么下载网站网站推广的目的是什么

ps做图软件怎么下载网站,网站推广的目的是什么,wordpress3.1.3漏洞,专业的河南网站建设什么是死锁? 死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果没有外力干涉,这些进程将永远无法继续执行 死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下,例如&#…

什么是死锁?

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

死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下,例如,进程 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://www.hkea.cn/news/798664/

相关文章:

  • asp.net 制作网站开发百度竞价排名软件
  • 百度爱采购推广平台天津网络推广seo
  • 福州市闽侯县建设局网站推广引流吸引人的文案
  • wordpress目录 读写权限泰安短视频seo
  • 东莞建设网站流程澎湃新闻
  • 萧县住房和城乡建设局网站seo排名推广工具
  • 企业网站php模板下载百度百科官网首页
  • 做愛視頻网站在线网页制作网站
  • 织梦pc怎么做手机网站搜索引擎优化的基础是什么
  • 课程建设网站设计源码爱站网反链查询
  • 安徽省建设业协会网站个人网页制作教程
  • 好的摄影网站推荐福州seo顾问
  • html做的好看的网站如何宣传推广产品
  • 微信手机网站制作怎么引流客源最好的方法
  • 宿州建设网站公司前端seo搜索引擎优化
  • 做王境泽表情的网站百度seo关键词优化排名
  • 怎么选择无锡网站建设虚拟主机搭建网站
  • 做原油期货关注什么网站搜索引擎优化是做什么
  • 微信小程序怎么制作游戏安卓优化清理大师
  • 胶南做网站初学者做电商怎么入手
  • 网站为什么要维护佛山网络营销推广
  • 国企网站建设报告怎么建造自己的网站
  • 免费做司考真题的网站余姚网站如何进行优化
  • 如何网站开发1688网站
  • 丽水专业网站建设价格青岛网站优化
  • 网站开发专业培训学校百度推广登录官网入口
  • 贵阳做网站公司网站热度查询
  • 做课件最好的素材网站考拉seo
  • 网站建设玖首选金手指seo网站优化收藏
  • 台州卓远做网站好不好广州seo教程