当前位置: 首页 > news >正文

Java从入门到放弃

线程池的主要作用

线程池的设计主要是为了管理线程,为了让用户不需要再关系线程的创建和销毁,只需要使用线程池中的线程即可。
同时线程池的出现也为性能的提升做出了很多贡献:

  1. 降低了资源的消耗:不会频繁的创建、销毁线程,线程池中的线程随取随用。
  2. 提高了相应速度:因为线程是已经创建好的线程,所以减少了线程创建的时间。
  3. 提高了线程的可管理性:线程是稀缺资源不能无限制的创建,使用线程池使得线程的数量是可控的。即=
  4. 提供了更强大的功能:线程池还提供了一些功能,比如定时执行、延迟执行、线程存活时间等。

线程池的实现

线程池的实现类是 ThreadPoolExecutor,它的继承性UML类图如下:

在这里插入图片描述
顶层接口Executor提供了一种思想:将任务提交和任务执行进行解耦,用户无需关心如何创建线程,如何调度线程来执行任务,用户只需提供Runnable对象,将任务的运行逻辑提交到执行器中,由Executor框架完成线程的调配和任务的执行部分。

ExecutorSevice增加了一些能力:

  1. 扩充执行任务的能力,补充可以为一个或一批异步任务生成Future的方法
  2. 提供管控线程池的方法,比如停止线程池的运行。

AbstractExecutorService将执行任务的流程串联了起来,保证下层的实现只需关注一个执行任务的方法即可。

ThreadPoolExecutor将会一方面维护自身的生命周期,另一方面同时管理线程和任务,是两者良好的结合从而执行并行任务。

to be continue2024年6月9日10:20:02

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 公用nacos,实现只调用本机相应服务,不出现负载均衡到别人机器上
  • eNSP学习——配置前缀列表
  • python爬虫爬取豆瓣TOP250用csv文件
  • 【MySQL】函数
  • HTML静态网页成品作业(HTML+CSS)—— 美食湘菜介绍网页(5个页面)
  • 图形和插图软件Canvas X Pro 20 Build 914
  • Android面试题之说说系统的启动流程(总结)
  • Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战
  • 常用的三种软件架构
  • 【Vue】购物车案例-构建项目
  • 15.2 测试-网格测试、基准测试与测试覆盖率
  • 基于拓扑漏洞分析的网络安全态势感知模型
  • 源码讲解kafka 如何使用零拷贝技术(zero-copy)
  • 云端之上的边缘:解读云计算与边缘计算的战略融合
  • 苹果召开WWDC:属于你的“定制”AI智能?
  • Google 是如何开发 Web 框架的
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • DOM的那些事
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Just for fun——迅速写完快速排序
  • KMP算法及优化
  • Mac转Windows的拯救指南
  • MD5加密原理解析及OC版原理实现
  • SpringBoot 实战 (三) | 配置文件详解
  • Theano - 导数
  • vue 个人积累(使用工具,组件)
  • 程序员该如何有效的找工作?
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 多线程事务回滚
  • 分享几个不错的工具
  • 浮现式设计
  • 首页查询功能的一次实现过程
  • 学习HTTP相关知识笔记
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 赢得Docker挑战最佳实践
  • 用element的upload组件实现多图片上传和压缩
  • ​补​充​经​纬​恒​润​一​面​
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #VERDI# 关于如何查看FSM状态机的方法
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (33)STM32——485实验笔记
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (HAL库版)freeRTOS移植STMF103
  • (pytorch进阶之路)扩散概率模型
  • (安卓)跳转应用市场APP详情页的方式
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (待修改)PyG安装步骤
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (二)Eureka服务搭建,服务注册,服务发现
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot智能服药提醒app 毕业设计 102151