java中线程池相关的类,java线程池相关知识

1、什么是线程池?

线程池是一种管理线程的思想,它在程序启动时在内存中开辟出一块空间,里面存放众多线程。

2、什么情况下用线程池

a. 单个任务处理的时间比较短

b. 需要处理的任务数量较大

3、使用线程池的好处

a. 减少在创建和销毁线程上的开销

b. 提高响应速度

c. 重复利用线程

4、线程池的种类及其应用场景

a. 可缓存的线程池:该线程池没有核心线程,非核心线程数量可以无限多,当有需要的时候创建线程来执行任务

使用场景: 耗时少、任务量大的情况

b.周期性执行任务的线程池: 按照某种特定的计划执行线程中的任务,既有核心线程也有非核心线程

使用场景:执行周期性的任务

c. 单线程化的线程池:只有一条线程来执行任务

使用场景:有顺序任务的场景

d. 定长的线程池:有核心线程池,没有非核心线程。

4、创建线程池的参数

创建线程池后,默认情况下线程池中是没有任何线程的,只有当任务来临时才创建线程去执行任务。

当有任务来是,就会去创建线程,当线程池中的线程数达到核心线程数量后 ,再来任务时就会把到达的任务放到          任务队列中去,当任务队列满了,再来任务时,线程池会创建新的线程,直到线程数量达到 最大线程数量。

a. 核心线程数量:

b. 线程池的最大线程数量:

c. 任务队列:

d. 线程工厂:

e. 线程存活保持时间:

f. 线程池拒绝策略:

5、线程池在业务中的应用

a. 快速响应用户的请求: 用户发起的实时请求,服务追求响应时间。比如说用户要查看一个商品的信息,那么我             们需要将商品维度的一系列信息如商品的价格、优惠、库存、图片等等聚合起来,展示给用户。

将调用封装成任务并行的执行,缩短总体响应时间。 这种场景最重要的是获取最大的响应速度去满足用户,               所以调高 核心线程数量和 最大线程数量 这两个参数就行

b.  快速处理批量任务:  离线的大量计算任务,需要快速执行

6、线程池的任务拒绝策略

a. 直接丢弃

b. 丢弃队列中最老的任务

c. 抛异常

d.  将任务分给调用线程来执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值