AnjoyoJava9章节考试题带答案.doc_第1页
AnjoyoJava9章节考试题带答案.doc_第2页
AnjoyoJava9章节考试题带答案.doc_第3页
AnjoyoJava9章节考试题带答案.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章考试题1、 选择题:(每题3分,共60题)1. 下列关于Java线程的说法那些是正确的( D )。A、 每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。虚拟CPUB、创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。C、Thread类属于java.util程序包。Lang包D、以上说法无一正确。2. 运行下列程序, 会产生什么结果?public class X extends Thread implements Runable public void run() System.out.println(this is run(); public static void main(String args) Thread t=newThread(new X(); t.start(); ( D )。A、 第一行会产生编译错误B、第六行会产生编译错误 C、第六行会产生运行错误D、程序会运行和启动3. 下面哪个方法不可以在任何时候被任何线程调用?( D )A、wait()B、sleep()C、yield()D、synchronized(this)4. 下列关于线程优先级的说法中,正确的是( D )。A、 线程的优先级是不能改变的 B、 线程的优先级是在创建线程时设置的C、 在创建线程后的任何时候都可以设置D、 B和C5. 线程生命周期中正确的状态是( C )。A、 新建状态、运行状态和终止状态B、新建状态、运行状态、阻塞状态和终止状态 C、新建状态、可运行状态、运行状态、阻塞状态和终止状态D、新建状态、可运行状态、运行状态、恢复状态和终止状态6. Thread类中能运行线程体的方法是( )。A、 start() B、 resume() C、 init() D、 run()7. 在线程同步中, 为了唤醒另一个等待的线程,使用下列方法( C )。A、 sleep() B、 wait()C、 notify() notifyall()D、 join()8. 为了得到当前正在运行的线程,可使用下列哪个方法?( B )。 A、 getName()B、Thread.CurrentThread() C、sleep()D、run()9. 以下( D )不属于线程的状态。A、就绪状态B、运行状态C、挂起状态D、独占状态10. 当线程被创建后,其所处的状态是( D )。A、 阻塞状态B、 运行状态 C、 就绪状态D、 新建状态11. Thread.sleep()方法调用后,当等待时间未到,该线程所处状态为( A )。A、 阻塞状态 如果时间未到不能得到CPU的运行权B、 运行状态C、 就绪状态E、 新建状态12. wait()方法首先是哪个类的方法?( A )。A、 Object B、ThreadC、RunnableD、File13. 下列关于Thread类提供的线程控制方法的说法中,错误的一项是(C )。A、 在线程A中执行线程B的join()方法,则线程A等待直到B执行完成。B、 线程A通过调用interrupt()方法来中断其阻塞状态。C、 若线程A调用方法isAlive()返回值为true,则说明A正在执行中。也可能是可运行状态D、 currentThread方法返回当前线程的引用。14. 下列说法中,正确的一项是( D ) A、由同一类创建的多个线程都同时运行结束。 B、创建线程只能通过继承java.lang.Thread类。 C、调用suspend()方法暂停的一个线程将不会再被重新执行。 D、程序的执行完毕与超极线程无关。15. 下列说法错误的一项是( B)。A、共享数据的所有访问都必须使用synchronized加锁。B、共享数据的访问不一定全部使用synchronized加锁。C、所有的共享数据的访问都是临界区。D、临界区必须使用syschronized标识。16. 下列不是进程组成部分的一项是( D )。A、代码 B、数据C、内核状态D、显示器17. 下列你不属于线程组成部分的是:( C )。A、程序计数器B、堆栈C、进程的十空间中的代码D、栈指针18. 下列说法正确的是( A )A、代码和数据都是进程的组成部分B、代码和数据是线程的组成部分C、进程是轻型的线程D、线程中包括进程19. 下列说法错误的一项是( C )A、Java的纯种体由Thread类的run方法定义。B、线程创建时已经确定了提供线程体的对象。 C、在线程中通过调用Thread类的run()方法创建线程对象。 D、Java中每一个线程都有自己的名字。20. 下列有关线程的叙述中正确的一项是?( B )。A、一旦一个线程被创建,它就立即开始运行。B、使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。C、当一个线程因为抢占机制而停止运行时,它被放在可运行队列的前面。 D、一个线程可能因为不同的原因而终止并进入终止状态。2、 简答题:(每题8分,共计40分)1. 线程有哪几个基本状态?它们之间如何转化?简述线程的生命周期。java中,每个线程都需经历新生、就绪、运行、阻塞和死亡五种状态,线程从新生到死亡的状态变化称为生命周期。用new一个Thread或者他的子类,就创建了一个线程,此时处于新生状态新生状态转变到就绪状态调用start方法就绪状态一旦得到CPU就会到达运行状态,并调用自己的run方法运行状态到阻塞状态调用sleep方法让CPU暂时中止自己进入阻塞状态阻塞到就绪状态,等待睡眠时间到了就会到达就绪状态重新在就绪队列中等待CPU,然后获得重新运行的机会运行到死亡(1)正常情况下线程任务完成 (2)非正常情况下线程被强制性终止如通过stop或者destroy方法执行2. 简述程序、进程和线程之间的关系?什么是多线程程序?程序在打开运行的时候就变成了进程,进程是由线程组成的,所谓进程,本身不能运行,它是一个资源的集合体,拥有内存,空间,模块,线程是真正的执行单元。一个程序有多个线程任务 ,这个程序叫做多线程程序。程序是一段代码 就是软件进程是程序的一次动态执行过程 对应了从代码加载执行到执行完的之信息港过程这个过程也是进程本身从产生,发展到消亡的过程线程是比进程更小的单位,一个进程在执行过程中可能产生N多线程或者多个执行流,每个线程都有自己的产生,存在和消亡的过程。也是一个动态的概念。多线程程序是说一个程序中包含多个执行流(线程)3. 试简述Thread类的子类或实现Runnable接口两种方法的异同。Runnable是接口,建议用接口方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。在使用Thread的时候只是需要继承Thread并且new一个实例出来,调用start方法可以启动一个线程。实现Runnable更符合面向对象设计思想4. 基于线程的时间管理如何实现。TimerTask Time关系 以及如何运行一个重复执行的任务。5. 同步和异步有何异同,在什么情况下分别使用他们?举例说明。如果数据将在线程间共享,例如正在写的数据以后可能被另外一个线程读到,或者正在读的数据 可能已经被另外一个线程写过了,那么这些数据就是共享数据,必须进行同步存取,比如火车站售票情况,多个窗口同时售票,也必须保证票是不重复的,就得保证同步进行。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论