题目内容

关于线程的创建过程,下面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( )方法仍然可以重新启动

对于死锁的描述,下面4 种说法正确的是( )。(多选)

A. 当两个线程互相等待对方释放同步锁时会发生死锁
B. Java虚拟机没有检测和处理死锁的措施
C. 一旦出现死锁,程序会发生异常
D. 处于死锁状态的线程处于阻塞状态,无法继续运行

下面4 个选项中,( )是线程进入阻塞状态的原因。(多选)

A. 线程试图获取某个对象的同步锁,而该锁被其他线程持有
B. 线程调用了另一个线程的join( )方法
C. 当线程调用了一个阻塞式的IO方法
D. 线程调用了 setDaemon(boolean b)方法

答案查题题库