去看看main函数:
Res r = new Res();
Input in = new Input(r);
Output out = new Output(r);
Thread t1 = new Thread(in);
Thread t2 = new Thread(out);
明白了吧。两线程处理的是同一对象。
楼主不厚道,代码不写全。
不是多个构造函数就能操作同一数据了,关键看后面代码
Resource r = new Resource ();
Input in = new Input(r);
Output out = new Output(r);
两个线程操作的是同一资源,但是如果Input ,Output 两个类中没有这个构造函数的话
private Resource r;
public Input(Resource r)
{
this.r=r;
}
你后面建立in和out两个对象的时候,你能把r传的进去吗。
而像你右边两个类中都new一个Resource的话那明显是两个对象了,操作的也就不是同一资源了。