如何自己编写线程池,迈向JDK线程池的深度学习?

2026-05-27 21:100阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3973个文字,预计阅读时间需要16分钟。

如何自己编写线程池,迈向JDK线程池的深度学习?

JDK线程池一瞥,我们先看一个JDK提供的线程池:ThreadPoolExecutor。其构造函数的参数包括:

+ corePoolSize:核心线程数+ maximumPoolSize:最大线程数+ keepAliveTime:空闲线程存活时间+ unit:存活时间单位+ workQueue:任务队列

JDK线程池一瞥

我们首先看一个JDK给我们提供的线程池​​ThreadPoolExecutor​​的构造函数的参数:

public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)

参数解释:

  • corePoolSize:这个参数你可以理解为线程池当中至少需要 corePoolSize 个线程,初始时线程池当中线程的个数为0,当线程池当中线程的个数小于 corePoolSize 每次提交一个任务都会创建一个线程,并且先执行这个提交的任务,然后再去任务队列里面去获取新的任务,然后再执行。
阅读全文

本文共计3973个文字,预计阅读时间需要16分钟。

如何自己编写线程池,迈向JDK线程池的深度学习?

JDK线程池一瞥,我们先看一个JDK提供的线程池:ThreadPoolExecutor。其构造函数的参数包括:

+ corePoolSize:核心线程数+ maximumPoolSize:最大线程数+ keepAliveTime:空闲线程存活时间+ unit:存活时间单位+ workQueue:任务队列

JDK线程池一瞥

我们首先看一个JDK给我们提供的线程池​​ThreadPoolExecutor​​的构造函数的参数:

public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)

参数解释:

  • corePoolSize:这个参数你可以理解为线程池当中至少需要 corePoolSize 个线程,初始时线程池当中线程的个数为0,当线程池当中线程的个数小于 corePoolSize 每次提交一个任务都会创建一个线程,并且先执行这个提交的任务,然后再去任务队列里面去获取新的任务,然后再执行。
阅读全文