ThreadPoolExecutor的使用

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

corePoolSize:核心线程数
maximumPoolSize:线程池中允许存在的最大线程数
keepAliveTime:超过核心线程数的线程的最大存活时间
unit:keepAliveTime参数的单位。一般使用TimeUtil的常量
workQueue:工作队列。新提交任务时,线程池中的数量等于核心线程数,新任务会添加到队列中
threadFactory:创建线程的工厂类。
handler:饱和策略。

1、线程池中数量小于核心线程数,即使线程池中的线程是空闲的,也创建新的线程处理新的任务
2、当线程池中的线程数大于核心线程数,空闲的线程超过最大等待时间会自动销毁。
3、当提交任务时,线程池中的线程数等于核心线程数,如果线程池中有空闲线程的使用空闲的,没有空闲的线程,把新任务添加到队列中等待空闲线程。
4、当队列已满,线程池中的数量小于最大线程数,创建新的线程处理任务。线程池中的数量=最大线程数,根据饱和策略处理新提交的任务

猜你喜欢

转载自www.cnblogs.com/blog-bo/p/9264727.html