_…__…__…__…__…__…__…__…__…_:…名…姓…… __…__…__…__…__…__…__…_:…号线..学… _…__…__…__…__…__…__ 订.__…__…:…级…班… …__…__装_..__…__…__…__…__…__…__…__…:…业…专… _…__…__…__…__…__…__…:…级…年……诚信应考 考出水平 考出风格
浙江大学城市学院
2010— 2011学年第一学期期末考试试卷
《 Java高级程序设计》
开课单位: 计算分院 ;考试形式:开卷;考试时间: 2011年 1月16日 所需时间: 120 分钟 题序 一 二 三 总 分 得分 评卷人
得分 一.__简答题_(本大题共_7__题,每题__5__分,共__35_分) 注意:回答问题尽量简明扼要。
1.多线程可以使用Runnable接口。是否可以认为,通过Runnable接口实现多线程的方式与Thread类没有任何关系?如果你认为有关系,那么Runnable实现类与Thread类是什么关系?请举例说明。
有关系;
Thread类实现了Runnable接口,因此可以扩展了Thread即实现了Runnable接口。
采用“Runnable实现类”方式需要构造一个新的Thread对象,并把Runnable实现类的实例作为参数传入Thread的构造器中——Thread(task: Runnable)。 举例: public class TestRunnable { public static void main(String[] args) { Thread thread = new Thread(new AnTask());
thread.start();
第 1 页 共 15 页
}
}
class AnTask implements Runnable { }
@Override public void run() { }
//do something
采用“扩展Thread类”方式无只需创建扩展Thread类的实例(无参构造)即可,但是不推荐使用这种方法,因为它将任务和运行任务的机制混在了一起。将任务从线程中分离出来是比较好的设计。 举例:
public class TestThread { }
class AnThread extends Thread {
@Override public void run() {
//do something
public static void main(String[] args) { }
Thread thread = new AnThread(); thread.start();
第 2 页 共 15 页
}
}
第 3 页 共 15 页