A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Res
{        String name;
        String sex;
        boolean flag=false;
}
class input implements Runnable
{        private Res r;
        input(Res r)
        {        this.r=r;       
        }
        public void run()
        {        int x=0;
            while(true)
                {  synchronized(r)
                        {if(flag)
                        try{r.wait();}catch(Exception e){}       
                    if(x==0)
                    {
                        r.name="lili";
                        r.sex="girl";
                    }
                        else
                        {
                                r.name="张三";
                                r.sex="男";
                        }
               
                x=(x+1)%2;
             r.flag=true;
            notify();
                   }
        }
}
}
class output implements Runnable
{        private Res r;
        output(Res r)
        {
                this.r=r;
        }
        public void run()
                {while(true)
                  {synchronized(r)
                        {if (!flag)
                                try{r.wait();}catch(Exception e){}
                        System.out.println(r.name+"......"+r.sex);}
                        r.flag=false;
                        notify();
                        }
                       
                }
        }
}//编译时提示这一行有错误,需要class,interface或enum
class  waitDemo
{       
        public static void main(String[] args)
        {   Res r=new Res();
                input in=new input(r);
                input out=new input(out);
                Thread t1=new Thread(in);
                Thread t2=new Thread(out);
                t1.start();
                t2.start();
        }
}

4 个回复

倒序浏览
主函数中input out=new input(r);改正后仍出现上述情况,崩溃了
回复 使用道具 举报
写错了,是output out=new output(r)改正后仍出现上述提示
回复 使用道具 举报
  1. class Res {
  2.         String name;
  3.         String sex;
  4.         boolean flag = false;
  5. }

  6. class Input implements Runnable {
  7.         private Res r;

  8.         Input(Res r) {
  9.                 this.r = r;
  10.         }

  11.         public void run() {
  12.                 int x = 0;
  13.                 while (true) {
  14.                         synchronized (r) {
  15.                                 if (false)
  16.                                         try {
  17.                                                 r.wait();
  18.                                         } catch (Exception e) {

  19.                                         }
  20.                                 if (x == 0) {
  21.                                         r.name = "lili";
  22.                                         r.sex = "girl";
  23.                                 } else {
  24.                                         r.name = "张三";
  25.                                         r.sex = "男";
  26.                                 }

  27.                                 x = (x + 1) % 2;
  28.                                 r.flag = true;
  29.                                 notify();
  30.                         }
  31.                 }
  32.         }
  33. }

  34. class Output implements Runnable {
  35.         private Res r;

  36.         Output(Res r) {
  37.                 this.r = r;
  38.         }

  39.         public void run() {
  40.                 while (true) {
  41.                         synchronized (r) {
  42.                                 if (!false)
  43.                                         try {
  44.                                                 r.wait();
  45.                                         } catch (Exception e) {
  46.                                         }
  47.                                 System.out.println(r.name + "......" + r.sex);
  48.                         }
  49.                         r.flag = false;
  50.                         notify();
  51.                 }

  52.         }
  53. }

  54. // 编译时提示这一行有错误,需要class,interface或enum

  55. class waitDemo {
  56.         public static void main(String[] args) {
  57.                 Res r = new Res();
  58.                 Input in = new Input(r);
  59.                 Output out = new Output(r);
  60.                 Thread t1 = new Thread(in);
  61.                 Thread t2 = new Thread(out);
  62.                 t1.start();
  63.                 t2.start();
  64.         }
  65. }
复制代码
帮你修改后 编译通过 不过不太了解你的需求 能麻烦你把需求发出来吗?

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
一般这种错误都是多了或少了大括号
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马