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

如何申请网站空间和注册域名医院网站那里填评价

如何申请网站空间和注册域名,医院网站那里填评价,河北手机网站制作公司,烟台网站建设企业死锁在多线程代码中是非常严重的BUG#xff0c;一旦代码中出现死锁就会导致线程卡死。 当单个线程连续两次对同一个对象进行加锁操作时#xff0c;如果该锁是不可重入锁就会发生死锁#xff08;线程卡死#xff09; 两个线程两把锁#xff0c;如果出现这种情况也是会发生…死锁在多线程代码中是非常严重的BUG一旦代码中出现死锁就会导致线程卡死。 当单个线程连续两次对同一个对象进行加锁操作时如果该锁是不可重入锁就会发生死锁线程卡死 两个线程两把锁如果出现这种情况也是会发生死锁线程t1已经获取了锁A线程t2已经获取了锁B此时t1想要获取锁Bt2想要获取锁A。 Object lock1 new Object(); Object lock2 new Object();Thread t1 new Thread(()-{synchronized(lock1) {try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}synchronized(lock2) {}} }); Thread t2 new Thread(()-{synchronized(lock2) {try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}synchronized(lock1) {}} }); t1.start(); t2.start(); //让主线程等待 2 秒 Thread.sleep(2000); //此时t1和t2两个线程会因为互相争对方的锁而导致死锁 System.out.println(t1.getState()); System.out.println(t2.getState());如果此时有N个线程M把锁(N,M2)就更加容易发生死锁的情况了。 一个非常经典的N个线程M把锁的问题哲学家就餐问题。 假设有5名哲学家围在一张桌子上吃面现在桌子上有5根筷子。哲学家会做两件事思考和吃面(吃面必须要拿到两根筷子吃完后会将筷子放回原处)。且做这两件事的时间是完全随机的同一时间只能做一件事 大多数情况下是不会出现问题的但也会出现一些极端情况现在所有的哲学家都想吃面他们同时拿起了自己左手边的筷子此时每位哲学家手里都有且仅有一只筷子此时每位哲学家都在等待另一支筷子就会发生死锁。 那么该如何解决死锁问题呢首先我们先要了解死锁的必要条件然后根据这些条件来修改。 引发死锁的必要条件 互斥(锁的基本特性)当一个线程获取到锁后如果另一个线程也想获取该锁就会阻塞等待。不可抢占(锁的基本特性)当线程A获取到锁后如果线程B也想获取该锁只能等待A将该锁释放后再获取不能直接抢。请求保持(代码结构)一个线程获取了A锁后继续获取B锁……且前面获取的锁不进行释放。循环等待/环路等待(代码结构)等待的依赖关系形成了环。 一个死锁代码一定会满足上述四种情况任意一个不满足都不会形成死锁。 死锁的解决方法 解决死锁的情况只要破坏上述条件中的任意一个就行了。 上述四条中1和2都是锁的基本特性所以无法改变。 对于3在代码中尽量避免出现锁嵌套的情况但是这种情况很难避免因为实际代码中的嵌套往往都是这样的很难发现和避免 public void fun1(){synchronized (this) {fun2();} } public void fun2(){fun3(); } public void fun3(){fun4(); } public void fun4(){synchronized (this) {} }所以解决4就显得非常重要了那么4这种情况该如何避免呢 有一个非常简单的方法那就是约定加锁的顺序。 例如对于上文中的哲学家就餐的问题 现在给每支筷子进行编号约定每位哲学家拿筷子的顺序都是必须先拿面前编号较小的然后再拿编号较大的。 B拿1号筷子-C拿2号筷子-D拿3号筷子-E拿4号筷子-A拿1号筷子但是1号筷子此时在B手中所以A会阻塞等待此时E拿到5号筷子吃完后放下筷子-D拿到4号筷子吃完后放下筷子-C拿到3号筷子吃完后放下筷子-B拿到2号筷子吃完后放下筷子。 此时就完美避免了死锁问题的发生。
http://www.yutouwan.com/news/444147/

相关文章:

  • 大方县住房城乡建设局网站做一个网站的基本步骤
  • 自己建一个影视网站要怎么做建设网站容易吗
  • 网站架构设计师福建石狮有做网站的没
  • 做二维码电子档相册 找什么网站如何注册网站平台
  • 南山区住房和建设局官方网站怎么做线上推广
  • 县工商局 网站建设wordpress 猜你喜欢
  • 买做指甲的材料在哪个网站logo免费设计在线生成无水印
  • 中国建设银行网站登录不上登录自治区建设厅的网站查询
  • 移动设备网站开发注意点wordpress调用标签软件
  • 红岗网站建设网站建设公司南昌
  • 网上做网站网站代理江西网站建设与推广
  • 国外室内设计网站大全网站广西建设职业技术学院官网
  • 建设银行网站下载中心在哪权威的网站建设排行榜
  • dede重工蓝色企业免费网站模板网站建设实训心得3000字
  • 石家庄专业网站营销阿玛尼手表
  • 收费的网站怎么做的什么网站都有漏洞
  • 看动漫什么网站好优化网站的目的
  • 白色网站配色微信如何修改wordpress
  • 网站建设前 沟通内容wordpress主题快速
  • 做招商网站iis网站找不到网页
  • 吉安建设局官方网站建设部建设厅报考网站
  • 阿里云做网站经费wordpress stats
  • 专做电子产品评测的网站wordpress 纯静态插件
  • 怎么做网站和注册域名网站建设如何添加咨询
  • 网站建设 规范网络舆情监测工作
  • 任县企业做网站动漫制作和动漫设计哪个好
  • 商务网站建设体会电脑网站适应手机如何做
  • 如何建网站平台wordpress mp4播放器
  • 做钓鱼网站软件下载百度产品大全
  • 沭阳县城乡建设局网站镇江专业建网站