ThreadPoolExecutor参数讲解
1. 线程池可以节省创建多个线程带来的开销问题。
2. 线程池的参数如下:
- public ThreadPoolExecutor(int corePoolSize,
- int maximumPoolSize,
- long keepAliveTime,
- TimeUnit unit,
- BlockingQueue<Runnable> workQueue) {
- this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
- Executors.defaultThreadFactory(), defaultHandler);
- }
说明:
线程池按以下行为执行任务
1)当线程数小于核心线程数时,创建线程。
2)当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。
3)当线程数大于等于核心线程数,且任务队列已满
i)若线程数小于最大线程数,创建线程
ii)若线程数等于最大线程数,抛出异常,拒绝任务