由来:
线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,为了避免频繁的线程创建和销毁,执行完一个任务,并不被销毁,而是可以继续执行其他的任务。
1.java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类
public ThreadPoolExecutor(
int corePoolSize,
//核心池的大小,当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中;
int maximumPoolSize,
// 它表示在线程池中最多能创建多少个线程;
long keepAliveTime,
//表示线程没有任务执行时最多保持多久时间会终止
TimeUnit unit,
//参数keepAliveTime的时间单位
BlockingQueue<Runnable> workQueue,
//一个阻塞队列,用来存储等待执行的任务,排队策略一般使用LinkedBlockingQueue和Synchronous
ThreadFactory threadFactory,
//主要用来创建线程;
RejectedExecutionHandler handler
//当拒绝处理任务时的策略