黑马程序员技术交流社区

标题: 急。。我搞不懂这是指向同一个对象吗? [打印本页]

作者: jiangwenjun    时间: 2015-1-30 03:24
标题: 急。。我搞不懂这是指向同一个对象吗?
本帖最后由 jiangwenjun 于 2015-1-30 03:44 编辑



请问一下  这里 new Input(r);   new Output(r);  是指向同一个对象?     还是说同一个资源两个线程?本来就是要分开指向不同对象的呢?   这里我不懂了  不是存new Thread()里面是同一对象才能保证吗?   
作者: 我为你着迷    时间: 2015-1-30 08:14
本帖最后由 我为你着迷 于 2015-1-30 08:16 编辑

Resource r = new Resource();
Input in=new Input(r);
Output out=new Output(r);
Thread t1=new Thread(in);
Thread t2=new Thread(out);
这样写的话你应该能看的懂吧。
这个是将资源封装成了对象了,将线程执行的任务也封装成了对象,多个线程在操作同一个资源。而你Input和Output里边成员的位置声明了一个r变量,所以你创建构造函数Input和Output的时候你要往里传一个r以便完成对象的初始化动作。
这里边只是通过匿名对象的形式把代码进行简化了  建议楼主好好看下匿名对象这一块

作者: d342784178    时间: 2015-1-30 08:25
这是一个资源的两个线程嘛
不过你给两个线程传递的是同一个对象r
自然他们操作的也是同一个对象了

多线程自然指启动多个线程嘛
作者: jwl245322883    时间: 2015-1-30 08:40
来看看自学中
作者: jiangwenjun    时间: 2015-1-30 14:51
我为你着迷 发表于 2015-1-30 08:14
Resource r = new Resource();
Input in=new Input(r);
Output out=new Output(r);

明了!!!系同一资源两个线程!!!
作者: 边晓炎    时间: 2015-1-30 15:23
同一个资源两个线程在操作这个资源!!




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