在多线程程序设计中,如果采用继承Thread类的方法创建线程,则需要重写Thread 类的________ 方法。
查看答案
阅读下面的程序,分析代码是否能编译通过。如果能编译通过,请列出运行的结果;如果不能编译通过,请说明原因。public class Read03{private Object obj=new Object();public synchronized void a(){try {obj.wait();System.out.println("waiting");} catch (InterruptedException e) {System.out.println("Exception");}}public static void main(String[] args){new Read03().a();}}
关于线程的创建过程,下面4 种说法正确的是( )。(多选)
A. 定义Thread类的子类,重写Thread类的run( )方法,创建该子类的实例对象,调用对象的start( )方法
B. 定义Thread类的子类,重写Thread类的run( )方法,创建该子类的实例对象,调用对象的run( )方法
C. 定义一个实现Runnable接口的类并实现run( )方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start( )方法。
D. 定义一个实现Runnable接口的类并实现run( )方法,创建该类对象,然后调用run( )方法
对于通过实现Runnable接口创建线程,下面说法正确的是( )。(多选)
A. 适合多个相同程序代码的线程去处理同一个资源的情况
B. 把线程同程序代码、数据有效地分离,很好地体现了面向对象的设计思想
C. 可以避免由于Java的单继承带来的局限性
D. 编写简单,可以不通过Thread类直接创建线程
对于线程的生命周期,下面4 种说法正确的是( )。(多选)
A. 调用了线程的start( )方法,该线程就进入可运行状态(就绪,还要获得CPU使用权)
B. 线程的run( )方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态
C. 线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其他对象一样引用它
D. 线程进入死亡状态后,调用它的start( )方法仍然可以重新启动