一、线程池代码实现步骤:
1.创建线程池
2.提交任务
3.所有的任务全部执行完毕,关闭线程池
Executors:线程池的工具类通过调用方法返回不同类型的线程池对象
public static ExecutorService newCachedThreadPool()---->创建一个没有上限的线程池
public static ExecutorService newFIxedThreadPool(int nThreads)--->创建有上限的线程池
二、线程池主要核心原理:
(图片来自哔站黑马程序员)
①创建一个池子,池子中是空的
②提交任务时,池子会创建新的线程对象,任务执行完毕,线程归还给池子,下回再提交任务时,不需要创建新的线程,直接复用已有的线程即可
③但是如果提交任务时,池子中没有空闲线程,也无法创建新的线程,任务就会排队等待