黑马程序员技术交流社区

标题: 线程问题 [打印本页]

作者: 柴永菲    时间: 2011-11-6 20:36
标题: 线程问题
class Res{
     String name;
      String sex;
}

class Input implements Runnable
{
           private Res r;
             Input( Res r){
                    this.r=r;
                  }
             public void run(){
                       }
}
class Output implements Runnable
{
           private Res r;
             Output( Res r){
                    this.r=r;
                  }
             public void run(){
                       }
}

为什么这样写就可以使Input类和Output类中的r是同一个资源呢?而用Res r=new Res()在两个类中创建对象r却用的是两个对象呢?我没听懂毕老师讲的希望谁可以帮我一下谢谢
作者: 高美云    时间: 2011-11-6 20:45
Res r=new Res();是新的new出来的一个资源,如果各自在Input和Output中各自new一个,当然不是同一个资源了,而单独写一个资源类,就是为了让生产和消费的是同一个资源。
作者: 祁焱    时间: 2011-11-6 20:46
因为r这个对象是在主方法中创建的,通过Input和Output的构造函数传送到相应的类中,也就是:
Res r=new Res();
Input r1=new Input(r);
Output r2=new Output(r);
所以两个类中用的同一个r资源。
作者: 柴永菲    时间: 2011-11-6 21:16
哦谢谢大家呵呵辛苦了




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