1.newSingleThreadExecutor:创建一个唯一的工作者线程来执行任务,保证所有任务按照指定顺序(FIFO、LIFO、优先级)执行。如果这个线程异常结束的话,会有另一个取代它,保证顺序执行。单工作线程最大的特点是可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的。
2.newFixedThreadPool:创建一个可重用指定线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。FixedThreadPool 可以提高程序效率和节省创建线程时所消耗的开销。但是,在线程池中没有可运行任务时,它不会释放工作线程,还会占用一定的系统资源。
3.newCachedThreadPool:这是一个处理大量短时间工作任务的线程池,工作线程的创建数量没有限制,可以根据需求灵活的往线程池中添加线程。它的几个特点:
(1)它会试图缓存线程并且重用,当没有缓存线程可用的时候,会创建新的工作线程
(2)如果线程闲置的时间超过阈值(默认 1 分钟),则会被终止并移出缓存。
(3)综上两点,所以在系统长时间闲置的时候,不会消耗什么资源。
4.newScheduleThreadPool:创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行,延迟 3 秒执行等。