黑马程序员技术交流社区

标题: 技术 大神们能不能帮我看下我的代码 怎么跟老师不一样…… [打印本页]

作者: ujump    时间: 2015-6-23 17:16
标题: 技术 大神们能不能帮我看下我的代码 怎么跟老师不一样……
这是一个多线程就是一个输出一个输入的问题
为什么不是一个交替一个出现的
为什么实现不了毕老师的功能
我晕
  1. class res
  2. {
  3. String name;
  4. String sex;
  5. boolean flg=false;}
  6. class input implements Runnable
  7. {res s;
  8. input(res s){this.s=s;}
  9. public void run()
  10.         {int x=0;
  11.         while(true)
  12.         {synchronized(s)
  13.         {if(s.flg)
  14.         try{s.wait();}
  15.         catch(Exception e){}
  16.         if(x==0)
  17.         {s.name="mike";s.sex="man";}
  18.         else
  19.         {s.name="李丽丽里";s.sex="女女女女";}
  20.         x=(x+1)%2;
  21.         s.flg=false;s.notify();}
  22.         }
  23. }
  24. }
  25. class output implements Runnable
  26. {
  27. res s;
  28. output(res s){this.s=s;}
  29. public void run()
  30.         {
  31.         while(true)
  32.         {synchronized(s)
  33.         {if(!s.flg)
  34.         try{s.wait();}catch(Exception e){}
  35.         System.out.println(s.name+"....."+s.sex);
  36.         s.flg=true;s.notify();
  37.         }
  38.         }}

  39. }
  40. class tx
  41. {
  42. public static void main(String[] args)
  43. {
  44. res s=new res();
  45. input in=new input(s);
  46. output out=new output(s);
  47. Thread t1=new Thread(in);
  48. Thread t2=new Thread(out);
  49. t1.start();
  50. t2.start();

  51. }



  52. }
复制代码

作者: ujump    时间: 2015-6-23 17:18
有没有技术大牛 帮我读读 输出结果到底是什么
作者: 赵龙    时间: 2015-6-23 17:53
这个小程序是要实现什么样的功能呢?????????????
作者: 赵龙    时间: 2015-6-23 17:57

  1. public class TestDemos
  2. {


  3.     public static void main(String[] args)
  4. {
  5.             res s=new res();
  6.             input in=new input(s);
  7.             output out=new output(s);
  8.             Thread t1=new Thread(in);
  9.             Thread t2=new Thread(out);
  10.             t1.start();
  11.              t2.start();

  12. }
  13. }

  14. class res
  15. {
  16.     String name;
  17.     String sex;
  18.     boolean flg=false;
  19.    
  20. }
  21. class input implements Runnable
  22. {
  23.         res s;
  24.     input(res s)
  25.     {
  26.             this.s=s;
  27.            
  28.     }
  29.    public void run()
  30.         {
  31.                 int x=0;
  32.             while(true)
  33.             {
  34.                     synchronized(s)
  35.         
  36.                     {
  37.                             if(s.flg)
  38.       
  39.                                     try{
  40.                                             s.wait();
  41.                                             }
  42.       
  43.                                    catch(Exception e){}
  44.         
  45.                             if(x==0)
  46.       
  47.                             {
  48.                                     s.name="mike";
  49.                                     s.sex="man";
  50.                                     }
  51.       
  52.                             else
  53.         
  54.                             {
  55.                                     s.name="李丽丽里";s.sex="女女女女";
  56.                                     }
  57.       
  58.                             x=(x+1)%2;
  59.       
  60.                             s.flg=true;
  61.                             s.notify();
  62.                             }
  63.         }
  64. }
  65. }
  66. class output implements Runnable
  67. {
  68.         res s;
  69.         output(res s){this.s=s;}
  70.         public void run()
  71.         {
  72.                         while(true)
  73.                         {
  74.                                 synchronized(s)
  75.         
  76.                                 {
  77.                                         if(!s.flg)
  78.         
  79.                                                 try{s.wait();}catch(Exception e){}
  80.       
  81.                                         System.out.println(s.name+"....."+s.sex);
  82.         
  83.                                         s.flg=false;
  84.                                         s.notify();
  85.       
  86.                                 }
  87.         }
  88.                         
  89.         
  90.         }

  91. }
复制代码


调好了,,就是判断标记没有写对




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