多线程之线程池的七个参数

简介: 多线程之线程池的七个参数

今天我们来学习一下多线程中的线程池,说道线程池,自然就是要优先解释一下线程池各个入参了。


ThreadPoolExecutor


ThreadPoolExecutor类是线程池中最核心的一个类了,如果我们想弄清ThreadPoolExecutor的入参,当然是要从它的构造函数入手了。

ThreadPoolExecutor类中一共提高了四个构造函数,入参最多的一个构造函数是七个参数,下面我们就来看一下这七个参数具体是什么,分别有怎样的含义。


参数解释


corePoolSize


int类型,线程池的核心线程大小,线程池中会一直保留着一定的线程数量,即便没有程序调用线程,这些线程依然不会被回收。


maximumPoolSize


int类型,线程池最大线程数量,每次程序在线程池中提取线程时,都会先去确认是否有空闲线程,如果没有空闲线程,才会有线程池进行创建一个新的线程。

但是,线程池中的总数量是有限的,这个参数就是来设置线程池中所能存在的最大线程数量。


keepAliveTime


空闲线程存活时间,当程序执行完成,线程也就空闲下来了,这个时候就会在一定的时间内进行回收销毁;这个空闲时间就是由当前参数来设置的。


unit


keepAliveTime的计量单位。


workQueue


新任务被提交后,会先进入到工作队列中,任务调度时再从队列中取出任务。


ThreadFactory


线程工厂,创建一个新线程时使用的工厂,可以用来设定线程名,是否为daemon线程等等。


handler拒绝策略


当工作队列中的任务达到最大限制,并且线程池中的线程数量也达到了最大限制,这时新任务产生时,就需要拒绝策略,JDK中提供了四种策略,分别是CallerRunsPolicy、AbortPolicy、DiscardPoliy、DiscardOldestPolicy等。


相关文章
|
2月前
|
缓存 Java
线程池的核心参数
线程池七大参数解析:核心线程数决定常驻线程,最大线程数控制并发上限,存活时间管理非核心线程生命周期,工作队列缓存待处理任务,线程工厂定制线程属性,拒绝策略应对任务过载,提升系统稳定性与资源利用率。
264 1
|
3月前
|
安全 算法 Java
Java 多线程:线程安全与同步控制的深度解析
本文介绍了 Java 多线程开发的关键技术,涵盖线程的创建与启动、线程安全问题及其解决方案,包括 synchronized 关键字、原子类和线程间通信机制。通过示例代码讲解了多线程编程中的常见问题与优化方法,帮助开发者提升程序性能与稳定性。
153 0
|
9天前
|
设计模式 缓存 安全
【JUC】(6)带你了解共享模型之 享元和不可变 模型并初步带你了解并发工具 线程池Pool,文章内还有饥饿问题、设计模式之工作线程的解决于实现
JUC专栏第六篇,本文带你了解两个共享模型:享元和不可变 模型,并初步带你了解并发工具 线程池Pool,文章中还有解决饥饿问题、设计模式之工作线程的实现
59 2
|
Java 存储
线程池的核心参数有哪些?
线程池七大核心参数:核心/最大线程数、线程保持时间及单位、阻塞队列、线程工厂与拒绝策略。
558 79
|
3月前
|
数据采集 监控 调度
干货分享“用 多线程 爬取数据”:单线程 + 协程的效率反超 3 倍,这才是 Python 异步的正确打开方式
在 Python 爬虫中,多线程因 GIL 和切换开销效率低下,而协程通过用户态调度实现高并发,大幅提升爬取效率。本文详解协程原理、实战对比多线程性能,并提供最佳实践,助你掌握异步爬虫核心技术。
|
4月前
|
Java 数据挖掘 调度
Java 多线程创建零基础入门新手指南:从零开始全面学习多线程创建方法
本文从零基础角度出发,深入浅出地讲解Java多线程的创建方式。内容涵盖继承`Thread`类、实现`Runnable`接口、使用`Callable`和`Future`接口以及线程池的创建与管理等核心知识点。通过代码示例与应用场景分析,帮助读者理解每种方式的特点及适用场景,理论结合实践,轻松掌握Java多线程编程 essentials。
272 5
|
8月前
|
存储 监控 Java
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
373 60
【Java并发】【线程池】带你从0-1入门线程池
|
6月前
|
Java
线程池是什么?线程池在实际工作中的应用
总的来说,线程池是一种有效的多线程处理方式,它可以提高系统的性能和稳定性。在实际工作中,我们需要根据任务的特性和系统的硬件能力来合理设置线程池的大小,以达到最佳的效果。
163 18
|
8月前
|
Python
python3多线程中使用线程睡眠
本文详细介绍了Python3多线程编程中使用线程睡眠的基本方法和应用场景。通过 `time.sleep()`函数,可以使线程暂停执行一段指定的时间,从而控制线程的执行节奏。通过实际示例演示了如何在多线程中使用线程睡眠来实现计数器和下载器功能。希望本文能帮助您更好地理解和应用Python多线程编程,提高程序的并发能力和执行效率。
281 20
|
7月前
|
Java
线程池的核心参数有哪些 ?
corePoolSize 核心线程数量 maximumPoolSize 最大线程数量 keepAliveTime 线程保持时间,N个时间单位 unit 时间单位(比如秒,分) workQueue 阻塞队列 threadFactory 线程工厂 handler 线程池拒绝策略

热门文章

最新文章