Java第七单元练习题Java多线程机制(20210109223217)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7 Java 多线程机制
7.1 单项选择题
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. J ava 语言具有许多优点和特点,下列选项中,哪个反映了Java 程序并行机制的特点( )
A. 安全性
B. 多线程
C. 跨平台
D. 可移值
11. 以下哪个关键字可以用来对对象加互斥锁(
)
A. transient
B. synchronized
C. serialize
D. static
12. 下面关于进程、线程的说法不正确的是( )。
A. 进程是程序的一次动态执行过程。
一个进程在其执行过程中,可以产生多个线程一一多线程,形成多条执行线索。
B. 线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。
线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。
C. Java多线程的运行与平台无关。
D. 对于单处理器系统,多个线程分时间片获取
CPU或其他系统资源来运行。
对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。
7.2 填空题
1. _______ 是java 程序的并发机制,它能同步共享数据、处理不同的事件。
2. 线程是程序中的一个执行流,一个执行流是由CPU 运行程序的代码、________________ 所形
成的,因此,线程被认为是以CPU为主体的行为。
3. 线程的终止一般可以通过两种方法实现:自然撤销或者是_______________ .
4. 线程模型在java中是由____________ 类进行定义和描述的。
5. 线程的创建有两种方法:实现 __________ 接口和继承Thread 类。
6. 多线程程序设计的含义是可以将程序任务分成几个____________ 的子任务。
7. 按照线程的模型,一个具体的线程也是由虚拟的CPU代码与数据组成,其中代码与数
据构成了___________ ,线程的行为由它决定。
8. ava中,新建的线程调用start()方法、如myThread.start(),将使线程的状态从New(新建状
态) 转换为 _______ 。
9. 多线程是java 程序的________ 机制,它能同步共享数据,处理不同事件。
10. 进程是由代码、数据、内核状态和一组寄存器组成,而线程是表示程序运行状态的,如程序计
数器、栈指针以及堆栈组成。
11. Thread 类提供了一系列基本线程控制方法,如果我们需要让与当前进程具有相同优先
级的线程也有运行的机会则可以调用___________ 方法。
12. 在多线程系统中,多个线程之间有 __________ 和互斥两种关系。
13. 在一个时间只能由一个线程访问的资源称为临界资源,访问临界资源的代码
7.3 判断题
1. 一个Java多线程的程序不论在什么计算机上运行,其结果始终是一样的。
(x )
2. Java 线程有五种不同的状态,这五种状态中的任何两种状态之间都可以相互转换。
( x )
3. 所谓线程同步就是若干个线程都需要使用同一个synchronized修饰的方法。
(V )
4. 使用Thread 子类创建线程的优点是可以在子类中增加新的成员变量,使线程具有某种
属性,也可以在子类中新增加方法,使线程具有某种功能。
但是,Java不支持多继承,Thread 类的子类不能再扩展其他的类。
(V )
5. Java虚拟机(JVM)中的线程调度器负责管理线程,调度器把线程的优先级分为10个级别,
分别用Thread类中的类常量表示。
每个Java线程的优先级都在常数1和10之间,即
Thread.MIN_PRIORIT丫和Thread.MAX_PRIORIT丫之间。
如果没有明确地设置线程的优先级别,每个线程的优先级都为常数8。
(x )
6. 当线程类所定义的run()方法执行完毕,线程的运行就会终止。
(V )
7. 线程的启动是通过引用其start()方法而实现的。
(V )
7.4 简答题
1. 同步和异步有何异同,在什么情况下分别使用他们举例说明
2. 在Java 中,怎样创建一个线程
7.5 参考答案
7.5.1 单项选择题:
1. C
2.D
3.D
4.A
5.D
6.D
7.C
8.A
9.D 10.B
11.B 12.C
7.5.2 填空题
1. 多线程
2. 操纵程序的数据
3. 被停止
5. Runnable
6. 并行
7. 线程体
8. 可运行状态
9. 并发
10. 寄存器
11. yield()
12. 同步
13. 临界代码
7.5.3 判断题
1. X
2. X
3.V
4.V
5. X
6. V
7. V
7.5.4 简答题
1. 同步和异步有何异同,在什么情况下分别使用他们举例说明。
如果数据将在线程间共享。
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
2. 在Java 中,怎样创建一个线程
答:
方法一:定义类来实现Runnable 接口
class TestThread implements Runnable {
public void run() { …}
}
方法二:继承Thread 类来实现
class TestThread extends Thread {
TestThread(String name) {
super(name);
start();
}
public void run() { …}
}。