线程池
线程池的基本概述 线程池是一种对线程进行复用和管理的机制。在 Java 中,通过线程池来控制线程的数量和线程的状态,提高线程的执行效率,避免频繁创建和销毁线程带来的资源消耗。就像餐厅的传菜员。餐厅有很多顾客下的订单(任务),而传菜员(线程)负责将菜送到顾客那里。如果每个订单都单独找一个传菜员,会导致传菜员数量过多,餐厅资源紧张。所以餐厅会安排固定的传菜员团队(线程池),他们负责不断地在厨房和顾客之间来回送菜(执行任务),提高服务效率。 线程池的状态 状态转换如图所示: 线程池的简单使用流程简单的使用流程可以总结为:任务提交 → 核心线程执行 → 任务队列缓存 → 非核心线程执行 → 拒绝策略处理第一步,创建线程池。 第二步,调用线程池的 execute()方法,准备执行任务。 如果正在运行的线程数量小于 corePoolSize,那么线程池会创建一个新的线程来执行这个任务; 如果正在运行的线程数量大于或等于 corePoolSize,那么线程池会将这个任务放入等待队列; 如果等待队列满了,而且正在运行的线程数量小于...