多线程练习题目

上传人:痛*** 文档编号:89831507 上传时间:2022-05-13 格式:DOC 页数:11 大小:72.50KB
返回 下载 相关 举报
多线程练习题目_第1页
第1页 / 共11页
多线程练习题目_第2页
第2页 / 共11页
多线程练习题目_第3页
第3页 / 共11页
点击查看更多>>
资源描述
.多 线 程一、单项1.下述哪个选项为真?()A.Error类是一个RoutimeE*ception异常B.任何抛出一个RoutimeE*ception异常的语句必须包含在try块之C任何抛出一个Error对象的语句必须包含在try块之D. 任何抛出一个E*ception异常的语句必须包含在try块之2.以下关于Java线程的说法哪些是正确的?()A.每一个Java线程可以看成由代码、一个真实的CPU以及数据3局部组成B.创立线程的两种方法,从Thread类中继承的创立方式可以防止出现多父类问题C.Thread类属于java.util程序包D.以上说法无一正确3.哪个关键字可以对对象加互斥锁?()A.transient B.synchronized C.serialize D.static4.以下哪个方法可用于创立一个可运行的类“()Apublic class * implements Runable public void run() B. public class * implements Thread public void run() C. public class * implements Thread public int run() Dpublic class * 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 * e*tends Thread implements Runnable public void run()System.out.println(“this is run();public static void main(String args) Thread t=new Thread(new *(); t.start();A.第一行会发生编译错误 B. 第六行会发生编译错误C.第六行会发生运行错误 D.程序会运行和启动8.java.lang.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.线程组由java.lang包中的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.MA*_PRIORITYC.NORM_PRIORITYD.BEST_PRIORITY18.()关键字可以对对象加互斥锁。A.synchronized B.transient C.serialize D.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.Thread B.Runnable C.Object D.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方法时,当前线程将继续执行29.以下程序的输出结果是 package .mytest.;class C6 implements Runnablepublicvoid run() for(int a=3;a=10;a+)if(isPrime(a)System.out.print(a+t);publicboolean isPrime(int n)booleanb=true;for(int i=2;in-1&b;i+)if(n%i)=0)b=false;returnb;publicclass Test6publicstaticvoid main(String args)Thread t=new Thread(new C6();t.start();A、2 4 6 B、3 5 7 C、3 6 9 D、2 5 830.以下哪一个操作不能使线程从等待阻塞状态进入对象锁阻塞状态?A.等待阻塞状态下的线程被notify唤醒B.等待阻塞状态下的线程被interrput中断C.等待时间到D.等待阻塞状态下的进程调用wait方法 31.以下哪一个方法可以使线程从运行状态进入其他阻塞状态?A. sleep B. wait C. yield D. start32.以下哪一个不属于Java线程模型的组成局部?A.虚拟的CPUB.虚拟CPU执行的代码C.代码所操作的数据D.执行流33.以下程序的输出结果是 。publicclass Test publicstaticvoid main(String args) new Test();Test() Test t1 = this;Test t2 = this;synchronized (t1) try t2.wait();System.out.println(DONE WAITING); catch (InterruptedE*ception e) System.out.println(INTERRUPTED); catch (E*ception e) System.out.println(OTHER E*CEPTION); finally System.out.println(FINALLY);System.out.println(ALL DONE);A.输出“ALL DONEB.输出“INTERRUPTEDC.输出“DONE WAITINGD.编译通过,但是不输出任何字符串34.以下哪一种情况一定不会使当前的 线程暂停执行? A.该线程抛出一个InterruptedE*ceptionB.该线程调用sleep方法C.该线程创立一个新的子线程D.该线程从输入流读取文件数据35.以下说法中错误的一项为哪一项 A.Java中的每一个线程都属于*个线程组B.线程只能在其创立时设置所属的线程组C.线程创立之后,可以从一个线程组转移到另一个线程组D.新建的线程组默认情况下属于其父线程所属的线程组36.以下不属于线程组成局部的一项为哪一项 A. 程序计数器 B. 堆栈 C. 进程地址空间中的代码 C. 栈指针37.以下关于Java线程模型的说法中,错误的一项为哪一项 A.Java线程模型包括了计算机的CPUB.代码可以与其他线程共享C.数据可以被多个线程共享D.线程模型在java.lang.Thread类中被定义38.以下关于Thread类提供的线程控制方法的说法中,错误的一项为哪一项 A.在线程a中执行线程b的join方法,则线程a等待直到b执行完成B.线程a通过调用interrupt方法来中断其阻塞状态C.假设线程a调用方法isAlive返回值为true,则说明a正在执行中D.currentThread方法返回当前线程的引用39.下面的哪一个关键字通常用来对对象加锁,从而使得对对象的访问是排他的? A. serialize B. transient C. synchronized D. 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. yield45.实现Runnable接口创立一个线程的语句是 Thead t = new Thead targetThead t = new Thead ;t.target=targetThead t = new Thead ;T.start(target)Thead t = new Thead ;Trun(target)Thead类定义与以下哪一个包中? A. java.io B. java.lang C. java.util D. java.awt46.以下说法中,错误的一项为哪一项 A.实现了Runnable接口的类,可以通过e*tends来继承其他的类B.实现了Runnable接口的类,不能继承其他的类C.Thread类的子类应该是关于CPU行为的类D.Thread类的子类也实现了Runnable接口47.以下是通过实现Runnable接口创立的类,其中正确的一项为哪一项 A. class A3 implements Runnable void run() /B. class A3 e*tends Runnablepublic void run() /C. class A3 implements Runnablepublic void run() /D. class A3 implements Runnable/48.Thread类的常量NORM_PRIORITY代表的优先级是 A.最低优先级B.普通优先级C.最高优先级D.不代表任何优先级50.以下哪一个包给出了Runnable接口的定义? A. java.util B. java.io C. java.lang D. java.sql二、填空题1.线程模型在Java中是由_类进展定义和描述的。2.多线程是Java程序的_机制,它能共享同步数据,处理不同事件。3.Java的线程调度策略是一种基于优先级的_。4.当线程完成运行并完毕后,将不能再运行。除线程正常运行完毕外,还可用其他方法控制其停顿。可以用_方法强行终止线程。5.如果一个线程处于_态,则这个线程是不能运行的。6.提供线程体的特定对象是在创立线程时指定的,创立线程对象是通过_类的构造方法实现的。7.在Java中,新建的线程调用start()方法,将使线程的状态从New(新建状态)转换为_。8.按照线程的模型,一个具体的线程是由虚拟的CPU、代码与数据组成,其中代码与数据构成了_,现成的行为由它决定。9.Thread类的方法中,toString()方法的作用是_。10. 线程是一个_级的实体,线程构造驻留在用户空间中,能够被普通的相应级别方法直接访问。11. 线程是由表示程序运行状态的组成的。12. 在Java线程模型中,一个线程是由、和三局部组成的。13. Thread类中表示最高优先级的常量是,而表示最低优先级的常量是。14. 假设要获得一个线程的优先级,可以使用方法,假设要修改一个线程的优先级,则可以使用方法。15. 在Java语言中临界区使用关键字标识。16. 线程的生命周期包括新建状态、运行状态、和终止状态。17. Java语言使用技术对共享数据操作进展并发控制。18. 进程是由、数据、核状态和组成的。19. 在Java线程模型中,数据和代码之间的关系是 的。20. 线程中 方法使执行线程放弃CPU并释放原来持有的对象锁,进入对象的wait等待池中。三、判断题1.一旦一个线程被创立,它就可以立即开场运行( )2.调用start()方法可以使一个线程成为可运行的,但是它并不能立即开场执行( )3.主线程不具有默认优先级( )4.Java中线程的优先级从低到高以整数09表示( )5.从一个同步语句块中退出来不会直接引起线程停顿执行( )6.线程的阻塞是指暂停一个线程的执行以等待*个条件发生( )7.优先级只能在线程启动前设置( )8.当生成守护线程的线程完毕时,此守护线程会随之消失( )9.线程之间的通信可以通过共享数据使线程互相交流,也可以通过线程控制方法使线程互相等待( )10.Object类定义了线程同步与交互的方法( )11. 线程一旦被创立,则自动运行 ( )12. 线程创立后需要调用start()方法,将线程置于可运行状态 ( )13. Thread类中没有定义run()方法 ( )14. 线程开场运行时,是从start()方法开场运行的( )15. 一个进程可以创立多个线程 ( )16. 代表优先级的常数值越大优先级越低 ( )17. 程序中可能出现一种情况:多个线程相互等待对方持有的锁,而在得到对方的锁之前都不会释放自己的锁,这就是死锁。 ( )18. 临界区可以是一个语句块,但是不可以是一个方法 ( )19. 释放锁的时候,应该按照加锁顺序的逆序进展 ( )20. 在对象串行化中,可以用来保护类中敏感信息的关键字是protected ( )四、简答题答复要点,并简明扼要作解释101.什么是线程?它和进程有什么区别?2.简述线程的生命周期。3.Runnable接口中包括哪些抽象方法?Thread类有哪些主要域和方法?4.创立线程有几种方式?试写出使用这些方式创立线程的一般模式。为什么有时候必须采用其中一种方式?5.简述线程的同步控制机制。6. 创立线程有哪两种方法?7. 什么是死锁?8. 线程有哪三种根本状态?这几种状态是怎样相互转换的?可画图表示9. Java语言中的线程包括哪三局部?10. 什么是进程?与线程有何区别?五、程序设计题1.编写一个多线程类,该类的构造方法调用Thread类带字符串参数的构造方法。建立自己的线程名,然后随机生成一个休眠时间,再将自己的线程名和休眠多长时间显示出来。该线程运行后,休眠一段时间,该时间就是在构造方法中生成的时间。最后编写一个测试类,创立多个不同名字的线程,并测试其运行情况。2.编写一个程序,测试异常。该类提供一个输入整数的方法,使用这个方法先输入两个整数,再用第一个整数除以第二个整数,当第二个整数为0时,抛出异常,此时程序要捕获异常。3.编写一个用线程实现一个数字时钟的应用程序。该线程类要采用休眠的方式,把绝对大局部时间让系统使用。4.编写一个使用继承Thread类的方法实现多线程的程序。该类有两个属性,一个字符串代表线程名,一个整数代表该线程要休眠的时间。线程执行时,显示线程名和休眠时间。5.应用继承类Thread的方法实现多线程类,该线程3次休眠假设干(随机)毫秒后显示线程名和第几次执行。6.请通过实现Runnable接口和继承Thread类分别创立线程,要求:除了main线程之外,还要创立一个新的线程。Main线程重复100次“main“,新线程重复100次输出“new。7.为了使下面的程序能够输出“running,请在注释处填写相关语句代替注释/A。publicclass Test implements Runnablepublicstaticvoid main(String args)Test test=new Test();Thread t=new Thread(test);/A publicvoid run()System.out.println(running);voidgo()start(1);void start(int i)8.在以下程序的横线处填入正确的语句publicclass Test publicstaticvoid main(String args) Thread t1 = newsubTread(First);Thread t2 = newsubTread(Second);t1.start();t2.start();class subTread e*tends Thread publicsubTread(String s) publicvoid run() System.out.println( + getName();try sleep(int) (Math.random() * 1000); catch (InterruptedE*ception e) / TODO Auto-generated catch blocke.printStackTrace();System.out.println(完毕! + getName();9.请创立一个线程,指定一个限定时间如60s,线程运行时,大约每3s输出1次当前所剩时间,直至给定的限定时间用完。考点:sleep方法10.以下是一个模拟订票业务的程序。BookingClerk类代表自动售票员,其中包含一个订票booking方法。假设一开场有10票可预定。程序运行时产生两个订票客户同时自动向自动售票员订票。请问会出现什么错误?该如何修改?考点:临界区与互斥publicclass Test publicstaticvoid main(String args) BookingClerk bt = new BookingClerk();new BookingTest(bt, 7);new BookingTest(bt, 5);class BookingClerk intremainder = 10;void booking(int num) if (num
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!