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

线程池

线程池

一、什么是线程池

为什么要使用线程池

在开发中,为了提升效率的操作,我们需要将一些业务采用多线程的方式去执行。

比如有一个比较大的任务,可以将任务分成几块,分别交给几个线程去执行,最终做一个汇总就可以了。

比如做业务操作时,需要发送短信或者是发送邮件,这种操作也可以基于异步的方式完成,这种异步的方式,其实就是再构建一个线程去执行。

但是,如果每次异步操作或者多线程操作都需要新创建一个线程,使用完毕后,线程再被销毁,这样的话,对系统造成一些额外的开销。在处理过程中到底由多线程处理了多少个任务,以及每个线程的开销无法统计和管理。

所以咱们需要一个线程池机制来管理这些内容。线程池的概念和连接池类似,都是在一个Java的集合中存储大量的线程对象,每次需要执行异步操作或者多线程操作时,不需要重新创建线程,直接从集合中拿到线程对象直接执行方法就可以了。

JDK中就提供了线程池的类。

在线程池构建初期,可以将任务提交到线程池中。会根据一定的机制来异步执行这个任务。

  • 可能任务直接被执行
  • 任务可以暂时被存储起来了。等到有空闲线程再来处理。
  • 任务也可能被拒绝,无法被执行。

JDK提供的线程池中记录了每个线程处理了多少个任务,以及整个线程池处理了多少个任务。同时还可以针对任务执行前后做一些勾子函数的实现。可以在任务执行前后做一些日志信息,这样可以多记录信息方便后面统计线程池执行任务时的一些内容参数等等……

二、JDK自带的构建线程池的方式


http://www.kler.cn/news/10404.html

相关文章:

  • WinForms 网格控件 - iGrid.NET 10.1.22 Crack
  • 1.java程序员必知必会类库之日志
  • Windows使用Dockers+battery historian踩坑记
  • HTTP 和 HTTPS 的区别
  • 基于Vue3封装一个好用的Websocket
  • 男生|女生漫画头像怎么制作,分享3种免费制作方法,不用求人
  • rstudio跑不动咋整?-------生信豆芽菜
  • Redis只用来做缓存?来认识一下它其他强大的能力吧。
  • 举一反三学python(11)—excel实例
  • LeetCode 2404. 出现最频繁的偶数元素
  • 嵌入式开发:硬件和软件越来越接近
  • Linux 进程管理之四大名捕
  • 什么是汽车以太网?
  • 测试基础知识
  • TensorFlow 深度学习第二版:6~10
  • 如何在 Windows10 下运行 Tensorflow 的目标检测?
  • 行业认可,知道创宇入选安全牛第十版全景图30个细分领域
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK和微软图像压缩算法进行图像压缩保存(C#)
  • Android开发环境搭建
  • 什么是谓词?什么是行为参数化?
  • FreeRTOS 任务基础知识
  • windows系统管理_windows server 2016 用户管理
  • 利用 ELK 处理 Percona 审计日志
  • 「Cpolar」使用Typecho搭建个人博客网站【内网穿透实现公网访问】
  • 互联网摸鱼日报(2023-04-12)
  • Netty的线程模型
  • 这样也行,在lambda表达式中优雅的处理checked exception
  • 大数据系列——Hive理论
  • Faster-RCNN代码解读2:快速上手使用
  • 【数据结构与算法】栈和队列(StackQueue)