下文笔者讲述创建线程池的方法分享,如下所示: newFixedThreadPool(int nThreads) 创建一个固定长度的线程池 每当提交一个任务就创建一个线程 直到达到线程池的最大数量 这时线程规模将不再
下文笔者讲述创建线程池的方法分享,如下所示:
newFixedThreadPool(int nThreads)
创建一个固定长度的线程池每当提交一个任务就创建一个线程
直到达到线程池的最大数量
这时线程规模将不再变化
当线程发生未预期的错误而结束时
线程池会补充一个新的线程。
newCachedThreadPool()
创建一个可缓存的线程池当线程池的规模超过了处理需求
将自动回收空闲线程
当需求增加时,则可以自动添加新线程
线程池的规模无任何限制
newSingleThreadExecutor()
单线程的Executor创建单个工作线程来执行任务
当这个线程异常结束,会创建一个新的来替代它
它的特点是能确保依照任务在队列中的顺序来串行执行。
newScheduledThreadPool(int corePoolSize)
创建了一个固定长度的线程池而且以延迟或定时的方式来执行任务
类似于Timer