我没从头看,就从主函数说吧:
public static void main(String[] args)
{
Res r = new Res();//因为希望in和out是同一个资源对象,所以在这里创建一个对象
Input in = new Input(r);//将资源对象r分别传递给新建的in,out对象,这样这两个对象就可以操作r了
Output out = new Output(r);//面向对象下,能执行操作的是对象,
//对象要操作别个对象就只能先拿到引用,要么自己建一个新的,要么接收一个别人建好的
Thread t1 = new Thread(in);//显然这里in,out都是Runnable接口的子类对象
Thread t2 = new Thread(out);//in,out中都实现(覆写)了run方法
t1.start();
t2.start();
} |