线程池

43 阅读1分钟

线程池: (重要参数:核心线程数,工作队列,最大线程数,存活时间)

当前线程数小于核心线程数,添加新的线程处理任务;

当前线程数大于等于核心线程数,工作队列未满,则放入工作队列;工作列队满且小于最大线程数,则添加新的线程处理任务;

当前线程数大于核心线程数,工作队列满,等于最大线程数则根据handler制定的策略来处理任务

(池中超过核心线程数时,存活时间到则销毁线程)

种类:

newSingleThreadExecutor: 单一线程,存活时间无限长

适用:一个任务一个任务执行的场景

newFixedThreadPool:线程固定,存活时间无限长

适用:执行长期的任务,性能好很多

newCachedThreadPool:

适用:执行很多短期异步的小程序或者负载较轻的服务器

NewScheduledThreadPool:

适用:周期性执行任务的场景