Java线程池核心参数详解
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Java工具类ExecutorService提供了6种自动创建线程池的方法,实际都是基于一种手动创建线程池的方法来实现的,下面来了解这种手动创建线程池的构造函数,以下是源码:
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
包含了7个参数,分别是:
核心线程数corePoolSize
最大线程数maximumPoolSize
闲置可存活时间keepAliveTIme
时间单位unit
任务队列workQueue
线程工厂threadFactory
拒绝策略handler
前言:当有任务到达线程池时的流程
(1)判断线程池的线程数是否到达了核心线程数corePoolSize,如果没有到达,则新建线程运行任务;
(2)如果线程池的线程数达到了核心线程数corePoolSize,则判断任务队列workQueue是否已满,未满则将新的任务提交到任务队列中;
(3)如果任务队列已满