如何自己编写线程池,迈向JDK线程池的深度学习?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3973个文字,预计阅读时间需要16分钟。
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提供的线程池: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 每次提交一个任务都会创建一个线程,并且先执行这个提交的任务,然后再去任务队列里面去获取新的任务,然后再执行。

