多线程练习题目 联系客服

发布时间 : 星期二 文章多线程练习题目更新完毕开始阅读14e9c3c8da38376baf1fae88

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.主线程不具有默认优先级( )