线程池

手动创建一个线程池:

import java.util.concurrent.ThreadPoolExecutor;

Java通过Executors提供了四种线程池,这四种线程池都是直接或间接配置ThreadPoolExecutor的参数实现的;

import java.util.concurrent.Executors;

newFixedThreadPool(int nThreads)

创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程

newCachedThreadPool()
创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加时,则可以自动添加新线程,线程池的规模不存在任何限制

newScheduledThreadPool(int corePoolSize)    #
创建了一个固定长度的线程池,而且以延迟或定时的方式来执行任务,类似于Timer。

newSingleThreadExecutor()
这是一个单线程的Executor,它创建单个工作线程来执行任务,如果这个线程异常结束,会创建一个新的来替代它;它的特点是能确保依照任务在队列中的顺序来串行执行

 

 

posted @ 2019-10-13 21:26  唐胜伟  阅读(117)  评论(0编辑  收藏  举报