【并发编程】线程池

是什么?

就是一种多线程处理形式,处理过程中可以将任务添加到对列中,然后在创建线程后自动启动这些任务。

优点:
1.降低资源消耗
2.提高响应速度
3.提高线程的可管理性

应用场景:
有并发的地方、任务数量大或小、每个任务执行时间长或短都可以使用线程池。例如:网购商品秒杀,云盘文件上传和下载
注意:在使用的时候要设置合理的线程池大小

java内置线程池

  • ThreadPoolExecutor构造方法
    在这里插入图片描述
    饱和处理机制:就是核心线程数量、最大线程数量、任务队列多放满了,这个时候线程池就处于饱和状态了,没有能力再继续处理接下来的任务,此时就会使用饱和处理机制,将任务处理一下(即:丢弃一些任务,让任务等待)

线程池的五中状态

在这里插入图片描述

  • RUNNING: 可以接受新任务,以及对已添加的任务进行处理
  • SHUTDOWN: 不能接受新任务,但是可以处理排队任务
  • STOP:不接受新任务,不处理排队任务,中断正在进行的任务
  • TIDYING:所有任务都终止,当有效线程数为“0”,线程池的状态变为TIDYING,也会执行钩子函数terminated()
  • TERMINATED: 线程彻底终止

关闭线程池的方法

  • SHUTDOWN():关闭线程池,等待任务都执行完成
  • SHUTDOWNNOW():不等任务都执行完,就关闭线程池
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值