Java 线程池

线程池:
在初始化一个多线程应用程序中创建一个线程集合。 需要执行新的任务时,直接从线程集合里获取线程,不需要创建一个线程。

线程池优点:
减少创建和销毁的次数,可重复利用工作线程。
根据系统的承受能力,调整线程池中工作线程的数量,防止消耗过度内存导致服务器崩溃。

线程池组成部分:
线程池管理器,工作线程,任务队列,任务接口等。

线程池管理器:创建,销毁并管理线程,添加新任务;
工作线程: 可以循环执行任务的线程,在没有任务时进行等待;
任务队列:一种缓冲机制,将没有处理的任务放在任务队列中;
任务接口:规定任务的入口,任务执行完后收尾工作,任务执行状态。
工作线程通过该接口调度任务的执行。

线程池处理流程:

  1. 提交一个任务到线程池中

  2. 判断核心线程池是否已满
    是:进入下一个流程 3
    否:创建线程执行任务

  3. 判断队列是否已经满了
    是:进入下一个流程 4
    否:将任务存储在队列里

  4. 判断线程池是否已满
    是:创建线程执行任务
    否:交给饱和策略处理任务

RejectedExecutionHandler:饱和策略
AbortPolicy:直接抛出异常(默认设置)
CallerRunsPolicy:只用调用所在的线程运行任务
DiscardOldestPolicy:丢弃队列里最近的一个任务,并执行当前任务。
DiscardPolicy:不处理,丢弃掉。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值