黑马程序员技术交流社区

标题: 多线程的通信问题 [打印本页]

作者: 枫儿    时间: 2013-10-10 15:17
标题: 多线程的通信问题
本帖最后由 枫儿 于 2013-10-10 15:38 编辑

为什么都提示找不到函数?是代码哪的问题?
  1. class rec
  2. {
  3.         String name;
  4.         String age;
  5. }

  6. class Input implements Runnable
  7. {
  8.         private rec r;
  9.         Input(rec r)
  10.         {
  11.                 this.r=r;
  12.         }
  13.         public void run()
  14.         {
  15.         int x=0;
  16.         while (true)
  17.         {
  18.                 synchronized(r)
  19.                 {
  20.                 if(x==0)
  21.                 {
  22.                 r.name="make";
  23.                 r.age="Man";
  24.                 }
  25.                 else
  26.                 {
  27.                 r.name="扣扣";
  28.                 r.age="女女女";
  29.                 }
  30.                 x=(x+1)%2;
  31.                
  32.                 }
  33.         }
  34.         }
  35. }

  36. class out implements Runnable
  37. {
  38.         private rec r;
  39.         out(rec r)
  40.         {
  41.         this.r=r;
  42.         }

  43.         public void run()
  44.         {
  45.                 while (true)
  46.                 {
  47.                         synchronized(r)
  48.                         {
  49.                                 System.out.println(r.name+"...."+r.age);
  50.                         }
  51.                 }
  52.         }
  53. }

  54. class dxctx
  55. {
  56.         public static void main(String[] args)
  57.         {
  58.         rec r=new rec();

  59.         Input in=new Input();
  60.         out o=new out();
  61.         Thread t1=new Thread(r);
  62.         Thread t2=new Thread(r);
  63.         t1.start();
  64.         t2.start();
  65.         }
  66. }
复制代码

作者: 喝龙血的我    时间: 2013-10-10 15:24
  1.         Input in=new Input();
复制代码
改成Input(r);
  1.      Input(rec r)
  2.         {
  3.                 this.r=r;
  4.         }
复制代码
因为你的构造函数需要一个参数,out的也一样
作者: 飘落    时间: 2013-10-10 15:25
main方法内的代码参数传错了。改后如下:
  1. class dxctx {
  2.         public static void main(String[] args) {
  3.                 rec r = new rec();

  4.                 Input in = new Input(r);
  5.                 out o = new out(r);
  6.                 Thread t1 = new Thread(in);
  7.                 Thread t2 = new Thread(o);
  8.                 t1.start();
  9.                 t2.start();
  10.         }
  11. }
复制代码

作者: To    时间: 2013-10-10 15:28
楼主你好,如果问题已解决请及时将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作




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