当前位置:文档之家› 多线程练习题卷

多线程练习题卷

多线程一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。

答案错选或未选者,该题不得分。

)501.下述哪个选项为真?( )A.Error类是一个RoutimeException异常B.任何抛出一个RoutimeException异常的语句必须包含在try块之内C.任何抛出一个Error对象的语句必须包含在try块之内D. 任何抛出一个Exception异常的语句必须包含在try块之内2.下列关于Java线程的说法哪些是正确的?( )A.每一个Java线程可以看成由代码、一个真实的CPU以及数据3部分组成B.创建线程的两种方法,从Thread类中继承的创建方式可以防止出现多父类问题C.Thread类属于java.util程序包D.以上说法无一正确3.哪个关键字可以对对象加互斥锁?( )A.transientB.synchronizedC.serializeD.static4.下列哪个方法可用于创建一个可运行的类?()A.public class X implements Runable { public void run() {……} }B. public class X implements Thread { public void run() {……} }C. public class X implements Thread { public int ru n() {……} }D.public class X implements Runable { protected void run() {……} }5.下面哪个选项不会直接引起线程停止执行?( )A.从一个同步语句块中退出来B.调用一个对象的wait方法C.调用一个输入流对象的read方法D.调用一个线程对象的setPriority方法6.使当前线程进入阻塞状态,直到被唤醒的方法是( )A.resume()方法B.wait()方法C.suspend()方法D.notify()方法7.运行下列程序,会产生的结果是( )public class X extends Thread implements Runnable {public void run(){System.out.println(“this is run()”);}public static void main(String[] args){Thread t=new Thread(new X());t.start();}}A.第一行会发生编译错误B. 第六行会发生编译错误C.第六行会发生运行错误D.程序会运行和启动ng.ThreadGroup类的作用为( )A.使任何类都可以为线程提供线程体B.定义了线程与交互的方法C.提供了线程组或组中的每个线程进行操作的方法D.以上都不是9.实现线程的创建有( )方法A.一种B. 两种 C.三种 D.四种10.一个进程可以包含( )个线程A.一B. 二C. 三D.四11.Java中的线程模型包含( )A.一个虚拟处理机B.CPU执行的代码C.代码操作的数据D.以上都是12.关于线程组以下说法错误的是( )A.在应用程序中线程可以独立存在,不一定要属于某个线程B.一个线程只能创建时设置其线程组C.线程组由ng包中的ThreadGroup类实现D.线程组使一组线程可以作为一个对象进行统一处里或维护13.下列定义线程方法正确的是( )A.Public Thread();B.Public Thread(Runnable target);C.Public Thread(ThreadGroup group,Runnable target);D.以上都正确14.以下不属于Thread类提供的线程控制方法是( )A.break()B.sleep()C.yield()D.join()15.下列关于线程的说法正确的是( )A.线程就是进程B.线程在操作系统出现后就产生了C.Soloris是支持线程的操作系统D.在单处理器和多处理器上多个线程不可以并发执行16.下列不属于线程生命周期状态的是( )A. 新建状态B.可运行状态C. 运行状态D.解锁状态17.以下不属于Thread类的线程优先级静态常量的是( )A.MIN_PRIORITYB.MAX__PRIORITYC.NORM__PRIORITYD.BEST__PRIORITY18.( )关键字可以对对象加互斥锁。

A.synchronizedB.transientC.serializeD.static19.下列( )方法和resume()方法相互搭配,使线程停止执行,然后调用resume()方法恢复线程。

A.interrupt()B.stop()C.suspend()D.yield()20.Thread类的方法中,getName()方法的作用是( )A.返回线程组的名称B.设置线程组的名称C.返回线程的名称D.设置线程的名称21.线程调用了sleep()方法后,该线程将进入( )状态A.可运行状态B.运行状态C.阻塞状态D.终止状态22.下列( )类或接口定义了线程同步与交互的方法。

A.ThreadB.RunnableC.ObjectD.ThreadGroup23.Java中线程是由线程类的( )方法定义的。

A.init()B.run()C.application()D.main()24.线程控制方法中,stop()的作用是( )A.强行终止线程B.使比其低的优先级线程运行C.只让给同优先级运行D.返回当前线程的引用25.在以下( )情况下,线程就进入可运行状态。

A.线程调用了sleep()方法时B.线程调用了join()方法时C.线程调用了yield()方法时D.以上都是26.下列说法中,正确的一项是()A.单处理机的计算机上,2个线程实际上不能并发执行B.单处理机的计算机上,2个线程实际上能够并发执行C.一个线程可以包含多个进程D.一个进程可以包含多个线程27.下列说法中错误的一项是()A.线程就是程序B.线程是一个程序的单个执行流C.多线程是指一个程序的多个执行流D.多线程用于实现并发28.下列关于Thread类的线程控制方法的说法中错误的一项是()A.线程可以通过调用sleep()方法使比当前线程优先级的线程运行B.线程可以通过调用yield()方法和当前线程优先级一样的线程运行C.线程sleep()方法调用结束后,该线程进入运行状态D.若没有相同优先级的线程处于可运行状态,县城调用yield()方法时,当前线程将继续执行30.下列哪一个操作不能使线程从等待阻塞状态进入对象锁阻塞状态?A.等待阻塞状态下的线程被notify()唤醒B.等待阻塞状态下的线程被interrput()中断C.等待时间到D.等待阻塞状态下的进程调用wait()方法31.下列哪一个方法可以使线程从运行状态进入其他阻塞状态?A. sleep()B. wait()C. yield()D. start()32.下列哪一个不属于Java线程模型的组成部分?A.虚拟的CPUB.虚拟CPU执行的代码C.代码所操作的数据D.执行流B.输出“INTERRUPTED”C.输出“DONE WAITING”D.编译通过,但是不输出任何字符串34.下列哪一种情况一定不会使当前的线程暂停执行?()A.该线程抛出一个InterruptedExceptionB.该线程调用sleep()方法C.该线程创建一个新的子线程D.该线程从输入流读取文件数据35.下列说法中错误的一项是()A.Java中的每一个线程都属于某个线程组B.线程只能在其创建时设置所属的线程组C.线程创建之后,可以从一个线程组转移到另一个线程组D.新建的线程组默认情况下属于其父线程所属的线程组36.下列不属于线程组成部分的一项是()A. 程序计数器B. 堆栈C. 进程地址空间中的代码 C. 栈指针37.下列关于Java线程模型的说法中,错误的一项是()A.Java线程模型包括了计算机的CPUB.代码可以与其他线程共享C.数据可以被多个线程共享D.线程模型在ng.Thread类中被定义38.下列关于Thread类提供的线程控制方法的说法中,错误的一项是()A.在线程a中执行线程b的join()方法,则线程a等待直到b执行完成B.线程a通过调用interrupt()方法来中断其阻塞状态C.若线程a调用方法isAlive()返回值为true,则说明a正在执行中D.currentThread()方法返回当前线程的引用39.下面的哪一个关键字通常用来对对象加锁,从而使得对对象的访问是排他的?()A. serializeB. transientC. synchronizedD. static40.下列说法中错误的一项是()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=targetThead t = new Thead ();T.start(target)Thead t = new Thead ();T.run(target)Thead类定义与下列哪一个包中?()A. java.ioB. ngC. java.utilD. java.awt46.下列说法中,错误的一项是()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{//··········}48.Thread类的常量NORM_PRIORITY代表的优先级是()A.最低优先级B.普通优先级C.最高优先级D.不代表任何优先级50.下列哪一个包给出了Runnable接口的定义?()A. java.utilB. java.ioC. ngD. java.sql二、填空题201.线程模型在Java中是由________类进行定义和描述的。

相关主题