黑马程序员技术交流社区

标题: 帮忙看下问题 [打印本页]

作者: 那些人之一    时间: 2013-12-8 10:46
标题: 帮忙看下问题
本帖最后由 那些人之一 于 2013-12-8 16:10 编辑

是死锁的代码,为什么看老师视频,同一样的代码,老师至少每次可以输出点东西,而我每次都没有,我代码有问题?详情看下面的代码和图
  1. // 死锁实例
  2. class Piao implements Runnable //extends Thread
  3. {
  4. private int num=100;
  5. Object obj=new Object();
  6. boolean flag=true;
  7. public void run()
  8. {
  9. if(flag)
  10. while (true)
  11. {
  12. synchronized(this)
  13. {
  14. show();
  15. }

  16. }
  17. else
  18. while (true)
  19. this.show();
  20. }
  21. public synchronized void show()
  22. {
  23. synchronized(obj)
  24. {
  25. if(num>0)
  26. {
  27. try
  28. {
  29. Thread.sleep(10);
  30. }
  31. catch (InterruptedException e)
  32. {
  33. System.out.println(Thread.currentThread().getName()
  34. +"----票数:"+num--);
  35. }

  36. }
  37. }
  38. }

  39. }
  40. class Deadlock
  41. {
  42. public static void main(String[] args)
  43. {
  44. Piao d =new Piao();
  45. Thread t1=new Thread(d);
  46. Thread t2=new Thread(d);
  47. t1.start();
  48. try
  49. {
  50. Thread.sleep(10);
  51. }
  52. catch (InterruptedException e)
  53. {
  54. }
  55. d.flag=false;
  56. t2.start();
  57. }
  58. }
复制代码

  1. <P><IMG border=0 alt="" src="http://bbs.itheima.com/forum.php?mod=image&aid=31802&size=300x300&key=ef51e7599b942e7d&nocache=yes&type=fixnone" aid="attachimg_31802"></P>
复制代码

360截图20131208104537875.jpg (44.03 KB, 下载次数: 9)

360截图20131208104537875.jpg

作者: 落木萧萧    时间: 2013-12-8 11:31
第34行打印代码要放到catch语句块外面




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2