Java习题集第六章多线程程序设计

目录

第 六 章  多线程程序设计

一.单项选择题

二、填空题

三. 简答题

四.程序阅读题


一.单项选择题

1.  线程调用了sleep()方法后,该线程将进入(    )状态。

A. 可运行状态            B. 运行状态

C. 阻塞状态                    D. 终止状态

2. 关于java线程,下面说法错误的是()

A. 线程是以CPU为主体的行为

B. java利用线程使整个系统成为异步

C. 创建线程的方法有两种:实现Runnable接口和继承Thread类

D. 新线程一旦被创建,它将自动开始运行

3.  在java中的线程模型包含()

A. 一个虚拟处理器                 B.  CPU执行的代码

C. 代码操作的数据                 D. 以上都是

4.在java语言中,临界区可以是一个语句块,或者是一个方法,并用()关键字标识。

A.  synchronized              B.   include           C.  import             D. Thread

5. 线程控制方法中,yield()的作用是()

A. 返回当前线程的引用       B.  使比其低的优先级线程执行

C. 强行终止线程                     D. 只让给同优先级线程运行

6. 线程同步中,对象的锁在()情况下持有线程返回

A. 当synchronized()语句块执行完后

B. 当在synchronized()语句块执行中出现例外(exception)时

C. 当持有锁的线程调用该对象的wait()方法时

D. 以上都是

7. 在以下()情况下,线程就进入可运行状态

A.  线程调用了sleep()方法时         B. 线程调用了join()方法时

C. 线程调用了yield()方法时          D. 以上都是

8. java用()机制实现了进程之间的异步执行

A. 监视器          B.虚拟机       C. 多个CPU          D. 异步调用

9.Thread类的方法中,toString()方法的作用是()

A. 只返回线程的名称             B. 返回当前线程所属的线程组的名称

C. 返回当前线程对象              D.返回线程的名称

10.以下哪个关键字可以用来对对象加互斥锁?(     )

A. transient              B. synchronized            C.  serialize          D. static

11. 当某一线程正处于休眠状态,而另一个线程用 Thread 类中的 interrupt() 方法中断它时,抛出的异常类型是(    )。

A. IOException             B. RuntimeException

C. InterruptedException          D. ClassNotFoundException

. 填空题

1.________是java程序的并发机制,它能同步共享数据、处理不同的事件。

2.线程是程序中的一个执行流,一个执行流是由CPU运行程序的代码、__________所形成的,因此,线程被认为是以CPU为主体的行为。

3. 线程的终止一般可以通过两种方法实现:自然撤销或者是__________。

4. 线程模型在java中是由__________类进行定义和描述的。

5. 线程的创建有两种方法:实现_________接口和继承Thread类。

6.  多线程程序设计的含义是可以将程序任务分成几个________的子任务。

7. 按照线程的模型,一个具体的线程也是由虚拟的CPU、代码与数据组成,其中代码与数据构成了___________,线程的行为由它决定。

8.  java中,新建的线程调用start()方法、如myThread.start(),将使线程的状态从New(新建状态)转换为_________。

9. 多线程是java程序的________机制,它能同步共享数据,处理不同事件。

10. 进程是由代码、数据、内核状态和一组寄存器组成,而线程是表示程序运行状态的______,如程序计数器、栈指针以及堆栈组成。

11.  Thread类提供了一系列基本线程控制方法,如果我们需要让与当前进程具有相同优先级的线程也有运行的机会则可以调用________方法。

12.线程的优先级在              之间,数值越大        

13. 在一个时间只能由一个线程访问的资源称为         。访问临界资源的代码         

14. 在多线程系统中,多个线程之间有                  两种关系。

15.  _________方法用于定义线程的执行体,       方法用于启动线程。

三. 简答题

1.  在 Java中,怎样创建一个线程?

2. 运行时异常与一般异常有何异同?

3. final, finally, finalize的区别?

4. sleep() 和 wait() 有什么区别?
5. 启动一个线程是用run()还是start()?


四.程序阅读题

1. 下列程序实现简单的线程调度,请回答以下问题:

      1  Thread myThread=new MyThreadClass();

myThread.start();

try

{

   myThread.sleep(10000);

}

catch(InterruptedException e)

{

}

myThread.stop();

程序执行完第一行后,线程进入________状态;

程序执行完第二行后,线程进入________状态;

程序开始执行第五行时,线程进入________状态;

程序执行完第五行后,线程进入________状态;

程序执行完第十行后,线程进入________状态;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值