线程池创建的参数 在创建线程的各种方式中我们有讲到过通过创建线程池来完成异步操作,但实际上jdk提供的Executors来创建线程池都还有些缺陷,线程池有以下几个参数: 代码节选自源码ThreadPoolExecutor.java的构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnitunit, BlockingQueueworkQueue, ThreadFactorythreadFactory, RejectedExecutionHandlerhandler) corePoolSize: 线程池中线程的个数,最少的个数,即使是空闲的,也会存在 maximumPoolSize: 线程池中允许的连接的最大个数 keepAliveTime: corePoolSize之外的线程,在没有任务时,最大存活时间 unit: keepAlveTime 的时间单位 workQueue: 在任务还没有执行前,保存Runnable任务的地方,也就是待执行任务队列 threadFactory: 线程工厂,可自定义线程生成的方式,可以自定义名字等等 handler:在线程池和队列满的时候,如何处理新到来的任务 jdk自带线程池的缺陷