您的位置首页生活百科

ThreadPoolExecutor 配置与使用

ThreadPoolExecutor 配置与使用

API 调用ThreadPoolExecutor executor = new ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue workQueue,RejectedExecutionHandler handler)总共 6 个参数,分别说说 6 个参数的作用。

corePoolSize 线程池维护线程的最少数量 (核心线程数)当有任务加入时,首先就是创建线程,直到线程达到核心线程数。

maximumPoolSize 线程池维护线程的最大数量(最大线程数)当超过核心线程数但是小余最大线程数时,有任务加入则会重新创建线程执行任务,所以最大线程数一定要合理控制,否则会创建过多的线程浪费资源。

keepAliveTime 线程池维护线程所允许的空闲时间unit 线程池维护线程所允许的空闲时间的单位keepAliveTime unit 超过这个时间的空闲线程将会从线程池被销毁,前提是线程数大于核心线程数

workQueue 线程池所使用的缓冲队列,阻塞队列中的一种,阻塞队列具体可以参考Java阻塞队列。当超过最大线程数时,如果还有任务加入,则不会继续创建线程,而是把任务加入到阻塞队列中,如果超过阻塞队列则会抛出异常。