java面试题及答案线程池队列_第1页
java面试题及答案线程池队列_第2页
java面试题及答案线程池队列_第3页
java面试题及答案线程池队列_第4页
java面试题及答案线程池队列_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

java面试题及答案线程池队列

一、单项选择题(每题2分,共10题)

1.在Java中,线程池的队列满了之后,线程池会采取什么策略?

A.抛出异常

B.等待队列可用

C.拒绝执行任务

D.自动增加线程数量

答案:C

2.Java中,哪个线程池的队列是无界的?

A.CachedThreadPool

B.FixedThreadPool

C.ScheduledThreadPool

D.SingleThreadExecutor

答案:A

3.在Java线程池中,如果任务队列满了,且线程数量达到最大值,会发生什么?

A.任务会被执行

B.任务会被丢弃

C.线程池会抛出异常

D.线程池会等待

答案:C

4.Java线程池中的工作线程是守护线程吗?

A.是

B.否

C.取决于实现

D.以上都不是

答案:B

5.Java中,哪个线程池允许尝试添加任务,如果失败则抛出异常?

A.CachedThreadPool

B.FixedThreadPool

C.SingleThreadExecutor

D.ScheduledThreadPool

答案:B

6.在Java中,线程池的饱和策略是什么?

A.当队列满了,线程池会创建新的线程

B.当队列满了,线程池会拒绝新的任务

C.当队列满了,线程池会等待直到队列可用

D.当队列满了,线程池会抛出异常

答案:B

7.Java中,哪个线程池可以定时执行任务?

A.CachedThreadPool

B.FixedThreadPool

C.ScheduledThreadPool

D.SingleThreadExecutor

答案:C

8.在Java线程池中,如果线程池关闭后,队列中还有未执行的任务,这些任务会怎样?

A.被执行

B.被丢弃

C.等待新线程池处理

D.抛出异常

答案:B

9.Java中,线程池的哪个参数决定了线程池可以同时执行的最大线程数?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:B

10.在Java中,线程池的哪个参数决定了当线程数大于核心线程数时,空闲线程的存活时间?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:C

二、多项选择题(每题2分,共10题)

1.Java线程池中的哪些参数可以影响线程池的行为?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:A,B,C,D

2.在Java中,哪些线程池的队列是有界的?

A.ArrayBlockingQueue

B.LinkedBlockingQueue

C.SynchronousQueue

D.PriorityBlockingQueue

答案:A,B,D

3.Java线程池中,哪些饱和策略是可用的?

A.AbortPolicy

B.CallerRunsPolicy

C.DiscardPolicy

D.DiscardOldestPolicy

答案:A,B,C,D

4.在Java线程池中,哪些参数是必须设置的?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:A,D

5.Java线程池中,哪些参数会影响线程的创建和销毁?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:A,B,C

6.在Java中,哪些线程池是固定大小的?

A.CachedThreadPool

B.FixedThreadPool

C.SingleThreadExecutor

D.ScheduledThreadPool

答案:B,C

7.Java线程池中,哪些参数会影响任务的处理?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:D

8.在Java线程池中,哪些参数可以设置线程池的线程存活时间?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:C

9.Java线程池中,哪些参数可以设置线程池的最大线程数?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:B

10.在Java线程池中,哪些参数可以设置线程池的队列?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

答案:D

三、判断题(每题2分,共10题)

1.Java线程池中的队列可以是无界的。(对/错)

答案:对

2.Java线程池中的线程一定是非守护线程。(对/错)

答案:错

3.Java线程池中的工作线程在任务执行完毕后会立即销毁。(对/错)

答案:错

4.Java线程池中的队列满了之后,线程池会创建新的线程来处理任务。(对/错)

答案:错

5.Java线程池中的线程在空闲时一定会被销毁。(对/错)

答案:错

6.Java线程池中的线程池关闭后,队列中的任务会被执行。(对/错)

答案:错

7.Java线程池中的线程池可以设置为守护线程。(对/错)

答案:对

8.Java线程池中的线程池在关闭后不能再添加新的任务。(对/错)

答案:对

9.Java线程池中的线程池可以设置为定时执行任务。(对/错)

答案:对

10.Java线程池中的线程池的队列可以是优先队列。(对/错)

答案:对

四、简答题(每题5分,共4题)

1.请简述Java线程池中的任务队列的作用。

答案:Java线程池中的任务队列用于存放待执行的任务。当线程池中的线程数量达到核心线程数时,新提交的任务会被放入队列中等待执行。队列满了之后,根据饱和策略处理新提交的任务。

2.请解释Java线程池中的饱和策略。

答案:Java线程池中的饱和策略是指当线程池中的工作线程数达到最大值,且任务队列已满时,如何处理新提交的任务。常见的饱和策略包括:AbortPolicy(直接抛出异常)、CallerRunsPolicy(调用者线程执行任务)、DiscardPolicy(丢弃任务)、DiscardOldestPolicy(丢弃队列中最老的任务)。

3.请描述Java线程池中的线程是如何创建和销毁的。

答案:Java线程池中的线程创建和销毁遵循以下规则:当提交任务时,如果线程池中的线程数少于核心线程数,则创建新线程;如果线程池中的线程数等于核心线程数,且队列未满,则将任务放入队列;如果队列已满,则创建新线程,直到达到最大线程数。当线程空闲时间超过keepAliveTime时,且线程池中的线程数超过核心线程数,多余的线程会被销毁。

4.请解释Java线程池中的线程池关闭流程。

答案:Java线程池关闭流程包括两个步骤:首先调用shutdown()方法,此时线程池不再接受新任务,但会处理队列中的任务;然后调用shutdownNow()方法,此时线程池尝试停止所有正在执行的任务,

温馨提示

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

评论

0/150

提交评论