1、线程池类关系图
2、自定义线程池7个重要参数
/*
* 1、核心线程数 corePoolSize
2、最大线程数 maxPoolSize
3、线程空闲回收时间 keepAliveTime
4、时间单位 TimeUtit
5、线程创建工厂
6、任务队列BlockingQueue
7、策略
abort:线程池任务超过最大任务数时,抛出异常
discard:任务正常提交,任务放弃执行,也不抛出异常
discardOldest:任务超过队列最大任务数时,丢弃等待时间最长的任务
CallerRuns:当前任务交给主线程运行
*/
new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);