线程池几个參数的理解:
比方去火车站买票, 有10个售票窗体, 但仅仅有5个窗体对外开放. 那么对外开放的5个窗体称为核心线程数, 而最大线程数是10个窗体.假设5个窗体都被占用, 那么后来的人就必须在后面排队, 但后来售票厅人越来越多, 已经人满为患, 就相似于线程队列已满.这时候火车站站长下令, 把剩下的5个窗体也打开, 也就是眼下已经有10个窗体同一时候执行. 后来又来了一批人,10个窗体也处理只是来了, 并且售票厅人已经满了, 这时候站长就下令*入口,不同意其它人再进来, 这就是线程异常处理策略.而线程存活时间指的是, 同意售票员歇息的最长时间,
以此限制售票员偷懒的行为.
ThreadPoolExecutor mExecutor = new ThreadPoolExecutor(corePoolSize,// 核心线程数
maximumPoolSize, // 最大线程数
keepAliveTime, // 闲置线程存活时间
TimeUnit.MILLISECONDS,// 时间单位
new LinkedBlockingDeque<Runnable>(),// 线程队列
Executors.defaultThreadFactory(),// 线程工厂
new AbortPolicy()// 队列已满,并且当前线程数已经超过最大线程数时的异常处理策略
);
不知道这样解释, 大家能不能更清楚一些呢?