java练习题-多线程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多线程
一、判断题
1.如果线程死亡,它便不能运行。(√)
2.在Java中,高优先级的可运行线程会抢占低优先级线程。(√)
3.线程可以用yield方法使低优先级的线程运行。(×)
4...程序开发者必须创建一个线程去管理内存的分配。(×)
5.一个线程在调用它的start方法,之前,该线程将一直处于出生期。(√)
6.当调用一个正在进行线程的stop( )方法时,该线程便会进入休眠状态。(×)
7.一个线程可以调用yield方法使其他线程有机会运行。(√)
二、选择题
1.Java语言中提供了一个▁d▁线程,自动回收动态分配的内存。
A.异步
B.消费者
C.守护
D.垃圾收集
2.Java语言避免了大多数的▁c▁错误。
A.数组下标越界
B.算术溢出
C.内存泄露
D.非法的方法参数
3.有三种原因可以导致线程不能运行,它们是▁acd▁。
A.等待
B.阻塞
C.休眠
D.挂起及由于I/O操作而阻塞
4.当▁a▁方法终止时,能使线程进入死亡状态。
A.run
B.setPrority
C.yield
D.sleep
5.用▁b▁方法可以改变线程的优先级。
A.run
B.setPrority
C.yield
D.sleep
6.线程通过▁c▁方法可以使具有相同优先级线程获得处理器。
A.run
B.setPrority
C.yield
D.sleep
7.线程通过▁d▁方法可以休眠一段时间,然后恢复运行。
A.run
B.setPrority
C.yield
D.sleep
8.方法resume( )负责重新开始▁d▁线程的执行。
A.被stop( )方法停止
B.被sleep( )方法停止
C.被wait( )方法停止
D.被suspend( )方法停止
9.▁BCD▁方法可以用来暂时停止当前线程的运行。
A.stop( )
B.sleep( )
C.wait( )
D.suspend( )
三、简述题
1.简述程序、进程和线程之间的关系?什么是多线程程序?
答:多线程是多个线程同时在执行。这些线程的执行是并发的,在逻辑上是同时进行,各个线程的控制流彼此独立。
2.线程有哪几个基本状态?它们之间如何转化?简述线程的生命周期。
答:新生状态—就绪状态—运行状态—等待状态—休眠状态—阻塞状态—死亡状态使用new创建新线程时,为新生状态;调用已经完成创建的线程中的start()方法之前,处于就绪状态;调用start()方法之后,处于运行状态;当线程需要获得对象的内置锁,而该锁正被其他线程拥有时,处于阻塞状态;
3.试简述Thread类的子类或实现Runnable接口两种方法的异同?
答:
class Threadx1 extends Thread
class Threadx2 implements Runnable