当前位置:首页 > 多线程练习题目
32.下列哪一个不属于Java线程模型的组成部分? A.虚拟的CPU
B.虚拟CPU执行的代码 C.代码所操作的数据 D.执行流
33.下列程序的输出结果是( )。 public class Test { public static void main(String args[]) { new Test(); } Test() { Test t1 = this; Test t2 = this; synchronized (t1) { try { t2.wait(); System.out.println(\); } catch (InterruptedException e) { System.out.println(\); } catch (Exception e) { System.out.println(\); } finally { System.out.println(\); } } System.out.println(\); } } A.输出“ALL DONE” B.输出“INTERRUPTED” C.输出“DONE WAITING”
D.编译通过,但是不输出任何字符串
34.下列哪一种情况一定不会使当前的 线程暂停执行?( ) A.该线程抛出一个InterruptedException B.该线程调用sleep()方法 C.该线程创建一个新的子线程 D.该线程从输入流读取文件数据
35.下列说法中错误的一项是( )
A.Java中的每一个线程都属于某个线程组 B.线程只能在其创建时设置所属的线程组
C.线程创建之后,可以从一个线程组转移到另一个线程组
D.新建的线程组默认情况下属于其父线程所属的线程组
36.下列不属于线程组成部分的一项是( ) A. 程序计数器 B. 堆栈 C. 进程地址空间中的代码 C. 栈指针
37.下列关于Java线程模型的说法中,错误的一项是( ) A.Java线程模型包括了计算机的CPU B.代码可以与其他线程共享 C.数据可以被多个线程共享
D.线程模型在java.lang.Thread类中被定义
38.下列关于Thread类提供的线程控制方法的说法中,错误的一项是( ) A.在线程a中执行线程b的join()方法,则线程a等待直到b执行完成 B.线程a通过调用interrupt()方法来中断其阻塞状态
C.若线程a调用方法isAlive()返回值为true,则说明a正在执行中 D.currentThread()方法返回当前线程的引用
39.下面的哪一个关键字通常用来对对象加锁,从而使得对对象的访问是排他的?( ) A. serialize B. transient C. synchronized D. static
40.下列说法中错误的一项是( )
A.可串行化的类必须实现Serializable接口 B.可串行化的类中的静态变量可以不被串行化 C.private数据访问权限能够限制数据不被串行化 D.对象串行化使用Java语言提供的默认机制
41.下列说法中正确的一项是( ) A.代码和数据是进程的组成部分 B.代码和数据是线程的组成部分 C.进程是轻型线程 D.线程中包含进程
42.下列说法中错误的一项是( )
A.共享数据的所有访问都必须使用synchronized加锁 B.共享数据的访问不一定全部使用synchronized加锁 C.所有的对共享数据的访问都是临界区 D.临界区必须使用synchronized标识
43.下列有关线程的叙述中正确的一项是( ) A.一旦一个线程都创建,它就立即开始运行
B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行 C.当一个线程因为抢占机制而停止运行时,它被放在课运行队列的前面 D.一个线程可能因为不同的原因停止并进入终止状态
44.下列方法中,不属于Thread类提供的线程控制方法的一个是( )
A. sleep() B. interrupt() C. init() D. yield()
45.实现Runnable接口创建一个线程的语句是( )
Thead t = new Thead (target) Thead t = new Thead ();
t.target=target
Thead t = new Thead ();
T.start(target)
Thead t = new Thead ();
T.run(target)
Thead类定义与下列哪一个包中?( )
A. java.io B. java.lang C. java.util D.
46.下列说法中,错误的一项是( )
A.实现了Runnable接口的类,可以通过extends来继承其他的类 B.实现了Runnable接口的类,不能继承其他的类 C.Thread类的子类应该是关于CPU行为的类 D.Thread类的子类也实现了Runnable接口
47.下列是通过实现Runnable接口创建的类,其中正确的一项是( ) A. class A3 implements Runnable
{
void run() {
//··········
} }
B. class A3 extends Runnable
{
public void run()
{
//··········
} }
C. class A3 implements Runnable
{
public void run()
{
//··········
} }
D. class A3 implements Runnable
{ //·········· }
java.awt
48.Thread类的常量 NORM_PRIORITY代表的优先级是( ) A.最低优先级 B.普通优先级 C.最高优先级
D.不代表任何优先级
50.下列哪一个包给出了Runnable接口的定义?( )
A. java.util B. java.io C. java.lang D. java.sql
二、填空题
1.线程模型在Java中是由________类进行定义和描述的。
2.多线程是Java程序的______机制,它能共享同步数据,处理不同事件。 3.Java的线程调度策略是一种基于优先级的_________。
4.当线程完成运行并结束后,将不能再运行。除线程正常运行结束外,还可用其他方法控制其停止。可以用_______方法强行终止线程。
5.如果一个线程处于______态,那么这个线程是不能运行的。
6.提供线程体的特定对象是在创建线程时指定的,创建线程对象是通过_____类的构造方法实现的。
7.在Java中,新建的线程调用start()方法,将使线程的状态从New(新建状态)转换为_____。 8.按照线程的模型,一个具体的线程是由虚拟的CPU、代码与数据组成,其中代码与数据构成了_______,现成的行为由它决定。
9.Thread类的方法中,toString()方法的作用是________。
10. 线程是一个_____级的实体,线程结构驻留在用户空间中,能够被普通的相应级别方法直接访问。
11. 线程是由表示程序运行状态的 组成的。
12. 在Java线程模型中,一个线程是由 、 和 三部分组成的。
13. Thread类中表示最高优先级的常量是 ,而表示最低优先级的常量是 。
14. 若要获得一个线程的优先级,可以使用方法 ,若要修改一个线程的优先
级,则可以使用方法 。
15. 在Java语言中临界区使用关键字 标识。
16. 线程的生命周期包括新建状态、 运行状态、 和终止状态。 17. Java语言使用 技术对共享数据操作进行并发控制。 18. 进程是由 、数据、内核状态和 组成的。 19. 在Java线程模型中,数据和代码之间的关系是 的。
20. 线程中 方法使执行线程放弃CPU并释放原来持有的对象锁,进入对象的
wait等待池中。
三、判断题
1.一旦一个线程被创建,它就可以立即开始运行( )
2.调用start()方法可以使一个线程成为可运行的,但是它并不能立即开始执行( ) 3.主线程不具有默认优先级( )
共分享92篇相关文档