java线程练习题及答案_第1页
java线程练习题及答案_第2页
java线程练习题及答案_第3页
java线程练习题及答案_第4页
java线程练习题及答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

精品文档 2016 全新精品资料 全程指导写作 独家原创 1 / 16 程练习题及答案 一 选择题 1. 下列说法中错误的一项是 A. 线程就是程序 B. 多线程是指一个程序的多个执行流 2. 下列哪个一个操作不能使线程从等待阻塞状态进入对象阻塞状态 A. B. C. D. 等待阴塞状态下的线程被 等待阻塞状态下的纯种被 等待时间到 等待阻塞状态下的线程调用 下列哪个方法可以使线程从运行状态进入其他阻塞状态 A. . 下列说法中错误的一项是 A. B. 一个线程是一个 的实例 线程从传递给纯种的 C. 线程操作的数据来自 例 D. 新建的线程调用 法就能立即进入运行状精品文档 2016 全新精品资料 全程指导写作 独家原创 2 / 16 态 5. 下列关于 提供的线程控制方法的说法中,错误的一项是 A. B. 在线程 A 中执行线程 B 的 法,则线程 A 等待直到 B 执行完成 线程 A 通过调用 法来中断其阻塞状态 C. 若线程 A 调用方法 回值为 说明 A 正在执行中 D. 法返回当前线程的引用 6. 下列说法中,错误的一项是 A. 对象锁在 句执行完之后由持有它的线程返还 B. C. 对象锁在 句中出现异常 时由持有它的线程返还 当持有锁的线程调用了该对象的 法时,线程将释放其持有的锁 D. 当持有锁的线程调用了该对象的构造方法时,线程将释放其持有的锁 7. 下面的哪一个关键字通常用来对对象的加锁,从而使得对对象的访问是排他的 A A. 品文档 2016 全新精品资料 全程指导写作 独家原创 3 / 16 二填空题 1. 在操作系统中,被称做轻型的进程是线程 D 多线程程序设计的含义是可以将一个程序任务分成几个 并行的 . 在 序中, 法的实现有两种方式: 实现 口 和 继 但是承 不确定 的 程序中可能出现一种情况:多个线种互相等待对方持有的锁,而在得到对方的锁 之前都不会释放自己的锁,这就是 死锁 之间的一个值 进程可以包含多个 三简答题 对象锁、 象锁:每个对象都有对象锁,当某个线程进入用义方法时,就获得了当前类对象的锁,其他线程就不能再获得该锁,直到线程释放该锁。一个类对象有一个对象锁,多个同步方法公用一个对象锁。 当前线程处于休眠状态,将对 2016 全新精品资料 全程指导写作 独家原创 4 / 16 交给其他线程,但不释放当前对象的锁,其他线程可以获得不能进入当前线程控制的对象锁。 区别是,它会释放对象锁,其他线程可以进入该同步块。 入当前同步块的线程调用 该线程变成等待状态。 入当前同步块的线程调用 法变成休眠状态, 所有休眠线程变成等待状态。 一个类中有多个同步方法,进入任意一个同步块都将获得该对象锁,由于 法使进入同步块的线程休眠,能唤醒所有被休眠线程中的一个, 以唤醒所有休眠线程。通常线程的通信通过 2. 有几种方法可以实现一个线程?用什么关键字修饰同步方法 ? S 有两种实现方法,分别是继承 与实现口 用 键字修饰同步方法 3. 和 有什么区别 ? 答: 线程类的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保 持,到时后会自动恢复。调用 会释放对象锁。 精品文档 2016 全新精品资料 全程指导写作 独家原创 5 / 16 的方法,对此对象调用 法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出 法后本线程才进入对象锁定池准备获得对象锁进入运行状态。 4. 同步和异步有何异同,在什么情况下分别使用他们?举例说明。 答: 如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程 序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 是 答: 启动一个线程是调用 法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由 并不意味着线程就会立即运行。 法可以产生必须退出的标志来停止一个线程。 , 都是什么 ? 同步有几种实现方法 , 都是什么 ? 答: 多线程有两种实现方法,分别是继承 与实现 精品文档 2016 全新精品资料 全程指导写作 独家原创 6 / 16 同步的实现方面有两种,分别是 . 线程的基本状态以及状态之间的关系 的线程有四种状态分别是:运行、就绪、挂起、结束 程面试问题 在任何 试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题。在投资银 行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的。他们会问面试者很多令人混淆的程问题。面试官只是想确信面试者有足够的 程与并发方面的知识,因为候选人中有很多只浮于表面。用于直接面向市场交易的高容量和低延时的电子交易系统在本质上是并发的。下面这些是我在不同时间不同地点喜欢问的 程问题。我没有提供答案,但只要可能我会给你线索,有些时候这些线索足够回答问题。现在引用 些问题中较流行。 15个 1)现在有 怎样保证 1精品文档 2016 全新精品资料 全程指导写作 独家原创 7 / 16 执行完后执行, 2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对 ”方法是否熟悉。这个多线程问题比较简单,可以用 2)在 需要实现一个高效的缓存 ,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它? 能满足你写像 强烈建议在你去参加多线程的面试之前认真读一下 为当前其大量用于构建电子交易终统的客户端缓存和交易连接空间。 3)在 通常会在电话面 试中经常被问到的 程面试问题。最大的不同是在等待时 释放锁,而 直持有锁。 4)用 现阻塞队列。 这是一个相对艰难的多线程面试问题,它能达到很多的目的。第一,它可以检测侯选者是否能实际的用 精品文档 2016 全新精品资料 全程指导写作 独家原创 8 / 16 程写程序;第二,可以检测侯选者对并发场景的理解,并且你可以根据这个问很多问题。如果他用 法来实现阻塞队列,你可以要求他用最新的 的并发类来再写一次。 5) 用 代码来解决生产者 消费者问题。 与上面的问题很类似,但这个问题更经典,有些时候面试都会问下面的问题。在 怎么解决生产者 消费者问题,当然有很多解决方法,我已经分享了一种用阻塞队列实现的方法。有些时候他们甚至会问怎么实现哲学家进餐问题。 6)用 程一个会导致死锁的程序,你将怎么解决? 这是我最喜欢的 为即使死锁问题在写多线程并发程序时非常普遍,但是很多侯选者并不能写 们很挣扎。只要告诉 他们,你有N 个资源和 N 个线程,并且你需要所有的资源来完成一个操作。为了简单这里的 n 可以替换为 2,越大的数据会使问题看起来更复杂。通过避免 的死锁来得到关于死锁的更多信息。 7) 什么是原子操作, 非常简单的 下来的问题是你需要同步一个原子操作。 精品文档 2016 全新精品资料 全程指导写作 独家原创 9 / 16 8) 的 键是什么作用?怎样使用它?在 法有什么不同? 自从 于 该准备好回答关于量怎样在并发环境中确保可见性、顺序性和一致性。 9) 什么是竞争条件?你怎样发现和解决竞争? 这是一道出现在多线程面试的高级阶段的问题。大多数的面试官会问最近你遇到的竞争条件,以及你是怎么解决的。有些时间他们会写简单的代码,然后让你检测出代码的竞争条件。可以参考我之前发布的关于 a 竞争条件的文章。在我看来这是最好的 程面试问题之一,它可以确切的检测候选者解决竞争条件的 经验, or is of or 于这方面最好的书是 10) 你将如何使用 将如何分析 在 3,然后 会打印日志,在 你可以使用 ”。非常简单和专业的线程面试问题,但是如果他 问你怎样分析它,就会很棘手。 精品文档 2016 全新精品资料 全程指导写作 独家原创 10 / 16 11) 为什么我们调用 法时会执行 法,为什么我们不能直接调用 这是另一个非常经典的 线程面试问题。这也是我刚开始写线程程序时候的困惑。现在这个问题通常在电话面试或者是在初中级 试的第一轮被问到。这个问题的回答应该是这样的,当你调用 且执行在 是如果你直接调用不会创建新的线程也不会执行调用线程的代码。阅读我之前写的 法的区别 这篇文章来获得更多信息。 12) 你怎样唤醒一个阻塞的线程? 这是个关于线程和阻塞的棘手的问题,它有很多解决方法。如果线程遇到了 塞,我并且不认为有一种方法可以中止线程。如果线程因为调用 者 可以中断线程,并且通过抛出 唤醒它。我之前写的 to in 很多关于处理线程阻塞的信息。 13)在 什么区别? 这个线程问题主要用来检测你是否熟悉 的并发包。这两个的区别是 2016 全新精品资料 全程指导写作 独家原创 11 / 16 过的障碍,而 能重复使用。 14) 什么是不可变对象,它对写并发应用有什么帮助? 另一个多线程经典面试问题,并不直接跟线程有关,但间接帮助很多。这个 试问题可以变的非常棘手,如果他要求你写一个不可变对象,或者问你为什么 15) 你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的? 多线程和并发程序中常遇到的有 争条件、死锁、活锁和饥饿。问题是没有止境的,如果你弄错了,将很难发现和调试。这是大多数基于面试的,而不是基于实际应用的 补充的其它几个问题: 1) 在 绿色线程和本地线程区别? 2) 线程与进程的区别? 3) 什么是多线程中的上下文切换? 4)死锁与活锁的区别,死锁与饥饿 的区别? 5) 用到的线程调度算法是什么? 6) 在 什么是线程调度? 7) 在线程中你怎么处理不可捕捉异常? 8) 什么是线程组,为什么在 精品文档 2016 全新精品资料 全程指导写作 独家原创 12 / 16 9) 为什么使用 架比使用应用创建和管理线程好? 10) 在 区别? 11) 如何在 查找哪个线程使用的 线程编程练习 题 选择题 1编写线程类,要继承的父类是: A: : : : : 2编写线程类,可以通过实现那个接口来实现? A: : : : : : 3什么方法用于终止一个线程的运行? 精品文档 2016 全新精品资料 全程指导写作 独家原创 13 / 16 A: : : : : : 4一个线程通过什么方法将处理器让给另一个优先级别相同的线程? A: : : : : : 5如果要一个线程等待一段时间后 再恢复执行此线程,需要调用什么方法? A: : : : : : : 精品文档 2016 全新精品资料 全程指导写作 独家原创 14 / 16 6. 什么方法使等待队列中的第一个线程进入就绪状态? A: B: C: D: E: : 口定义了如下哪些方法? A: : : : : : 8. 如下代码创建一个新线程并启动线程: 问 :如下哪些类可以创建 象,并能编译正确? A: B: C: 品文档 2016 全新精品资料 全程指导写作 独家原创 15 / 16 D: E: 答: 问在虚线处,如下哪些代码可以创建并启动线程? A: B: C: D: 答: 问答题 1. 线程和进程有什么区别? 精品文档 2016 全新精品资料 全程指导写作 独家原创 16 /

温馨提示

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

评论

0/150

提交评论