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

网站被墙 做301跳转电商网站建设定制

网站被墙 做301跳转,电商网站建设定制,网站设计电商首页,江苏省建设厅网站挂证存疑名单死锁的概念 在多线程编程中,我们为了防止多线程竞争共享资源而导致数据错乱,都会在操作共享资源而导致数据错乱,都会在操作共享资源之前加上互斥锁,只有成功获得到锁的线程,才能操作共享资源,获取不到锁的…

死锁的概念

在多线程编程中,我们为了防止多线程竞争共享资源而导致数据错乱,都会在操作共享资源而导致数据错乱,都会在操作共享资源之前加上互斥锁,只有成功获得到锁的线程,才能操作共享资源,获取不到锁的线程就只能等待,直到锁被释放。

那么,当两个线程为了保护两个不同的共享资源而使用了两个互斥锁,那么这两个互斥锁应用不当的时候,可能会造成两个线程都在等待对方释放锁,在没有外力作用下,这些线程会一直相互等待,就没有办法继续执行,这种情况就是发生了死锁

什么情况下会产生死锁?

死锁只有同时满足以下四个条件才会发生:

  • 互斥条件;
  • 持有并等待条件;
  • 不可剥夺条件;
  • 环路等待条件;

互斥条件

互斥条件是指多个线程不能同时使用同一个资源

如果线程A已经持有的资源,不能再同时被线程B持有,如果线程B请求获取线程A已经占用的资源,那线程B只能等待,直到线程A释放了资源。

image.png

持有并等待条件

持有并等待条件是指,当线程A已经持有了资源1,又想申请资源2,而资源2已经被线程C持有了,所以线程A就会处于等待状态,但是线程A在等待资源2的同时并不会释放自己已经持有的资源1

image.png

不可剥夺条件

不可剥夺条件是指,当线程已经持有了资源,在自己使用完之前不能被其他线程获取,线程B如果也想使用此资源,则只能在线程A使用完并释放后才能获取。

image.png

环路等待条件

环路等待条件指的是,在死锁发生的时候,两个线程获取资源的顺序构成了环形链

比如,线程A已经持有资源2,而想请求资源1,线程B已经获取了资源1,而想请求资源2,这就形成资源请求等待的环形图。

image.png

怎么避免死锁问题?

避免死锁问题就只需要破坏其中一个条件就可以,最常见的并且可行的就是使用资源有序分配法,来破坏环路等待条件

什么是资源有序分配法呢?

线程A和线程B获取资源的顺序要一样,当线程A是先尝试获取资源A,然后尝试获取资源B的时候,线程B同样也是先尝试获取资源A,然后尝试获取资源B,也就是说,线程A和线程B总是以相同的顺序申请自己想要的资源。

我们使用资源有序分配法的方式来修改前面发生死锁的代码,我们可以不改动线程A的代码。

我们先要清楚线程A获取资源的顺序,它先是获取互斥锁A,然后获取互斥锁B。

所以我们只需要将线程B改成以相同顺序的获取资源,就可以打破死锁了。

image.png

参考链接:小林coding

http://www.hkea.cn/news/581316/

相关文章:

  • 做网站的费用 优帮云百度广告代运营
  • wordpress儿童卡通主题兰州网站seo服务
  • 8网站建设做网站sem优化师是什么意思
  • 设计师个人网站怎么做百度优化培训
  • 广东海外建设监理有限公司官方网站2345网址导航是病毒吗
  • 深圳网站制作培训宁波网络营销公司
  • 网站建设方案书 模板长清区seo网络优化软件
  • 简述网站的推广策略产品设计
  • 商贸有限公司网站建设此网站服务器不在国内维护
  • 常州个人做网站制作小程序的软件
  • 郑州做网站公司dz论坛如何seo
  • 十堰商城网站建设网络营销seo优化
  • 小欢喜林磊儿什么网站做家教福州seo推广外包
  • 许昌网站开发博客营销
  • 做网站用jquery爱站网关键词挖掘
  • wordpress手动裁剪seo营销推广服务公司
  • 英文网站建设网站海南网站制作公司
  • 网页设计与网站建设主要内容软文营销的特点
  • 一起做网站17广州最新小组排名
  • 最专业的网站设计公司有哪些论坛企业推广
  • 单页网站怎么做外链个人网页
  • 宁波城乡住房建设局网站有效的网络推广
  • 网站建设 深圳销售crm客户管理系统
  • 高端网站开发设计站长之家字体
  • 免费网站建站工具购买域名的网站
  • 淘宝联盟怎么做网站百度网站提交
  • 前端做用vue做后台多还是做网站多青岛网站快速排名优化
  • 岳阳网站开发公司海淀区seo多少钱
  • 2017年做网站维护总结百度搜索软件
  • 南京网站建设公司点击器原理