线程池: (重要参数:核心线程数,工作队列,最大线程数,存活时间)
当前线程数小于核心线程数,添加新的线程处理任务;
当前线程数大于等于核心线程数,工作队列未满,则放入工作队列;工作列队满且小于最大线程数,则添加新的线程处理任务;
当前线程数大于核心线程数,工作队列满,等于最大线程数则根据handler制定的策略来处理任务
(池中超过核心线程数时,存活时间到则销毁线程)
种类:
newSingleThreadExecutor: 单一线程,存活时间无限长
适用:一个任务一个任务执行的场景
newFixedThreadPool:线程固定,存活时间无限长
适用:执行长期的任务,性能好很多
newCachedThreadPool:
适用:执行很多短期异步的小程序或者负载较轻的服务器
NewScheduledThreadPool:
适用:周期性执行任务的场景