365 字
2 分钟
线程池及其应用

线程池及其应用#

什么是线程池?#

线程池,简单来说,就是一个管理线程的池子。 管理线程的池子 ①、频繁地创建和销毁线程会消耗系统资源,线程池能够复用已创建的线程。 ②、提高响应速度,当任务到达时,任务可以不需要等待线程创建就立即执行。 ③、线程池支持定时执行、周期性执行、单线程执行和并发数控制等功能。

工作中线程池的应用吗#

之前我们有一个和第三方对接的需求,需要向第三方推送数据,引入了多线程来提升数据推送的效率,其中用到了线程池来管理线程。 image.png 业务示例 主要代码如下: 主要代码

线程池的参数如下:

  • corePoolSize:线程核心参数选择了 CPU 数 ×2
  • maximumPoolSize:最大线程数选择了和核心线程数相同
  • keepAliveTime:非核心闲置线程存活时间直接置为 0
  • unit:非核心线程保持存活的时间选择了 TimeUnit.SECONDS 秒
  • workQueue:线程池等待队列,使用 LinkedBlockingQueue 阻塞队列

同时还用了 synchronized 来加锁,保证数据不会被重复推送:

synchronized (PushProcessServiceImpl.class) {}

ps:这个例子只是简单地进行了数据推送,实际上还可以结合其他的业务,像什么数据清洗啊、数据统计啊,都可以套用。

线程池及其应用
作者
强人自传
发布于
2024-07-30
许可协议
CC BY-NC-SA 4.0