03
2020
09

线程池常用参数

/**

     * Creates a new {@code ThreadPoolExecutor} with the given initial

     * parameters.

     *

     * @param corePoolSize the number of threads to keep in the pool, even

     *        if they are idle, unless {@code allowCoreThreadTimeOut} is set

     * @param maximumPoolSize the maximum number of threads to allow in the

     *        pool

     * @param keepAliveTime when the number of threads is greater than

     *        the core, this is the maximum time that excess idle threads

     *        will wait for new tasks before terminating.

     * @param unit the time unit for the {@code keepAliveTime} argument

     * @param workQueue the queue to use for holding tasks before they are

     *        executed.  This queue will hold only the {@code Runnable}

     *        tasks submitted by the {@code execute} method.

     * @param threadFactory the factory to use when the executor

     *        creates a new thread

     * @param handler the handler to use when execution is blocked

     *        because the thread bounds and queue capacities are reached

     * @throws IllegalArgumentException if one of the following holds:<br>

     *         {@code corePoolSize < 0}<br>

     *         {@code keepAliveTime < 0}<br>

     *         {@code maximumPoolSize <= 0}<br>

     *         {@code maximumPoolSize < corePoolSize}

     * @throws NullPointerException if {@code workQueue}

     *         or {@code threadFactory} or {@code handler} is null

     */


public ThreadPoolExecutor(int corePoolSize,

                              int maximumPoolSize,

                              long keepAliveTime,

                              TimeUnit unit,

                              BlockingQueue<Runnable> workQueue,

                              ThreadFactory threadFactory,

                              RejectedExecutionHandler handler) { }


corePoolSize:核心线程数量,会一直存在,除非allowCoreThreadTimeOut设置为true

maximumPoolSize:线程池允许的最大线程池数量

keepAliveTime:线程数量超过corePoolSize,空闲线程的最大超时时间

unit:超时时间的单位

workQueue:工作队列,保存未执行的Runnable 任务

threadFactory:创建线程的工厂类

handler:当线程已满,工作队列也满了的时候,会被调用。被用来实现各种拒绝策略。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。