java线程池面试题及答案
一、单项选择题(每题2分,共10题)
1.在Java中,线程池中的核心线程默认会()
A.立即回收
B.空闲一定时间后回收
C.永不回收
D.根据任务数量回收
答案:C
2.以下哪个类是Java中线程池的主要实现类?()
A.ThreadPool
B.ExecutorService
C.ThreadGroup
D.ThreadPoolExecutor
答案:D
3.线程池的阻塞队列满了且线程数达到最大线程数时,新任务会()
A.直接执行
B.等待空闲线程
C.被拒绝
D.新建线程执行
答案:C
4.要设置线程池核心线程数为5,最大线程数为10,使用ThreadPoolExecutor构造函数时,以下哪个参数顺序正确?()
A.核心线程数,最大线程数,空闲时间,时间单位,阻塞队列,线程工厂,拒绝策略
B.最大线程数,核心线程数,空闲时间,时间单位,阻塞队列,线程工厂,拒绝策略
C.核心线程数,最大线程数,阻塞队列,空闲时间,时间单位,线程工厂,拒绝策略
D.最大线程数,核心线程数,阻塞队列,空闲时间,时间单位,线程工厂,拒绝策略
答案:A
5.Java线程池中,以下哪种拒绝策略会直接抛出异常?()
A.AbortPolicy
B.DiscardPolicy
C.DiscardOldestPolicy
D.CallerRunsPolicy
答案:A
6.线程池中的线程执行完任务后()
A.立即死亡
B.回到线程池等待新任务
C.根据任务数量决定是否死亡
D.进入阻塞状态
答案:B
7.对于一个固定大小的线程池,其最大线程数()
A.始终为1
B.与核心线程数相同
C.可动态调整
D.由系统决定
答案:B
8.线程池中的任务是以()形式存在的。
A.Runnable或Callable对象
B.Thread对象
C.普通方法
D.静态方法
答案:A
9.以下关于Java线程池说法错误的是()
A.可以提高线程的创建和销毁效率
B.可以控制并发线程的数量
C.线程池中的线程是无状态的
D.可以复用线程执行多个任务
答案:C
10.当线程池中的线程处于空闲状态时,它会()
A.执行其他任务
B.等待新任务到来
C.被销毁
D.进入休眠状态
答案:B
二、多项选择题(每题2分,共10题)
1.以下哪些是Java线程池的常见参数?()
A.核心线程数
B.最大线程数
C.空闲时间
D.时间单位
E.阻塞队列
答案:ABCDE
2.线程池的拒绝策略有()
A.AbortPolicy
B.DiscardPolicy
C.DiscardOldestPolicy
D.CallerRunsPolicy
E.RejectNewPolicy
答案:ABCD
3.以下关于Java线程池的说法正确的是()
A.可以有效管理系统资源
B.能避免创建过多线程导致系统资源耗尽
C.不同的任务可以复用线程池中的线程
D.线程池中的线程可以无限制创建
E.可以通过调整参数适应不同的业务场景
答案:ABCE
4.线程池中的阻塞队列可以是()
A.ArrayBlockingQueue
B.LinkedBlockingQueue
C.PriorityBlockingQueue
D.SynchronousQueue
E.DelayQueue
答案:ABCDE
5.在Java中创建线程池的方式有()
A.通过ThreadPoolExecutor构造函数
B.使用Executors的工厂方法
C.继承Thread类并创建多个实例
D.实现Runnable接口并手动管理线程
E.扩展ThreadPoolExecutor类
答案:ABE
6.以下关于线程池核心线程数的说法正确的是()
A.确定了线程池中长期存活的线程数量
B.不能大于最大线程数
C.可以根据任务的并发量合理设置
D.是线程池中的最大线程数量
E.当设置为0时,线程池无核心线程
答案:ABCE
7.以下哪些操作可以在线程池中执行?()
A.数据库查询任务
B.文件读取任务
C.网络请求任务
D.计算密集型任务
E.界面更新任务(在合适的框架下)
答案:ABCDE
8.线程池中的线程工厂可以用来()
A.创建线程
B.设置线程名称
C.设置线程优先级
D.初始化线程资源
E.限制线程数量
答案:ABCD
9.当线程池的最大线程数和核心线程数相等时()
A.线程池不会创建额外的线程
B.阻塞队列将不会被使用
C.任务