使用ThreadPoolExecutor实现控制一个方法的并发量,实现同时只能有10个线程进入方法

本文详细介绍了线程池的概念及其核心组件ThreadPoolExecutor的使用方法。包括线程池的设计目的、参数配置、饱和策略等关键信息,并通过示例代码展示了如何创建和使用线程池。

目录

 

线程池是什么

ThreadPoolExecutor

实现代码

需要注意的点


线程池是什么

线程池是一种基于池化思想管理线程的工具,设计它的核心目的是解决资源管理问题,可以降低资源消耗、提高响应速度以及提高线程的可管理性。

ThreadPoolExecutor

ThreadPoolExecutor是Executor最下层的实现类

 

  • 参数1:corePoolSize:核心池大小
  • 参数2:maximumPoolSize 线程池中允许的最大线程数
  • 参数3:keepAliveTime 线程空闲时的存活时间,即当线程没有任务执行时,继续存活的时间,默认情况下,该参数只在线程数大于corePoolSize时才有用
  • 最终任务执行完了,线程池中只会保留核心池大小数目的线程
  • 参数4:unit 时间的单位 枚举类型
  • 参数5:workQueue 工作的队列 存储任务的
  • 参数6:threadFactory 线程工厂 用来创建线程的 因为线程池里可能会有多个线程,由线程工厂来创建

线程池的饱和策略,当阻塞队列满了,且没有空闲的工作线程,如果继续提交任务,必须采取一种策略处理该任务,线程池提供了4种策略:

  •  AbortPolicy:直接抛出异常,默认策略;
  • CallerRunsPolicy:用调用者所在的线程来执行任务;
  • DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务;
  • DiscardPolicy:直接丢弃任务;</
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值