多线程
一、 判断题
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