public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue) {
1、corePoolSize —new ThreadPoolExecutor的时候创建的的线程,
如果ThreadPoolExecutor.execute的任务数>corePoolSize 则会把任务放到BlockingQueue 、如果BlockingQueue满了会继续创建新线程、一直到线程个数大于第二个参数maximumPoolSize
2、maximumPoolSize 允许创建的最大线程数、如果BlockingQueue已经满了、线程数==maximumPoolSize 则会执行ThreadPoolExecutor的拒绝策略
3、keepAliveTime 如果BlockingQueue从满了到未满、则大于corePoolSize, 小于maximumPoolSize的线程, 会在keepAliveTime的时间内存活、否则会被回收
参考
https://my.oschina.net/u/2250599/blog/498787
一、使用Executors创建线程池
之前创建线程的时候都是用的Executors的newFixedThreadPool(),newSingleThreadExecutor(),n