一个Java死锁程序.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个Java死锁程序.pdf

〖-1〗线程死锁 死锁(DeadLock),是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一 种互相等待的现象。此时称系统处于死锁状态,这些永远在互相等待的线程称为死锁线程。 产生死锁的四个必要条件是: 1:互斥条件:资源每次只能被一个线程使用。如前面的“线程同步代码段”。 2 :请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放。 3 :不剥夺条件:进程已获得的资源,在未使用完之前,无法强行剥夺。 4 :循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。 这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述 条件之一不满足,就不会发生死锁。 〖-2〗案例分析 以Java 语言为例,死锁一般来源于代码段的同步,当一段同步代码被某线程运行时, 其他线程可能进入堵塞状态,除非同步锁定被解除,否则线程不能访问那个对象。所以一 个线程完全可能等候另一个对象,而另一个对象又在等候下一个对象,以此类推。这个“ 等 候链”如果进入封闭状态,即最后那个对象等候的是第一个对象,此时,所有线程都会陷 入无休止的相互等待状态,造成死锁。尽管这种情况并非经常出现,但一旦碰到,程序的 调试将变得异常艰难。 在这里给出一个死锁的案例,如下代码: P03_10.java public class P03_10 implements Runnable { static Object S1 = new Object(),S2=new Object(); public void run() { if(Thread.currentThread().getName().equals(th1)) { synchronized(S1) { System.out.println(线程1锁定S1); //代码段1 synchronized(S2) { System.out.println(线程1锁定S2); //代码段2 } } } else { 安全编程技术 synchronized(S2) { System.out.println(线程2锁定S2); //代码段3 synchronized(S1) { System.out.println(线程2锁定S1); //代码段4 } } } } public static void main(String[] args) { Thread t1 = new Thread(new P03_10(),th1); Thread t2 = new Thread(new P03_10(),th2); t1.start(); t2.start(); } } 运行,效果如下: 这段程序也貌似没有问题。但是和上一节的例子一样,它也是很不安全的,这种不安 全性也很难发现。 观察run() 函数中的代码,当th1 运行后,进入代码段 1,锁定了S1,如果此时th2 运 行,抢占CPU,进入代码段3,锁定S2,那么th1 就无法运行代码段2 ,但是又没有释放 S1,此时,th2 也就不能运行代码段4 。造成互相等待。为了解释这个问题,将P03_10.java 的代码改为P03_11.java : P

文档评论(0)

docinppt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档