使用 Executors 工具类
- Executors.newFixedThreadPool(int nThreads)
特点:创建一个固定大小的线程池,线程池中的线程数始终保持不变。
适用场景:适用于任务量已知且相对固定的场景,可以有效控制资源的使用。- Executors.newSingleThreadExecutor()
特点:创建一个单线程的线程池,所有任务按顺序执行,一次只有一个任务处于活动状态。
适用场景:适用于需要按顺序执行任务的场景,确保任务的顺序性和互斥性。- Executors.newCachedThreadPool()
特点:创建一个可缓存的线程池,线程池会根据需要创建新线程,但在先前构建的线程可用时将重用它们。空闲线程会在60秒后被终止。
适用场景:适用于执行大量短期异步任务的场景,可以快速响应和处理任务。- Executors.newScheduledThreadPool(int corePoolSize)
特点:创建一个固定大小的线程池,可以延迟或周期性地执行任务。
适用场景:适用于需要定时或周期性执行任务的场景,如定时任务调度。- Executors.newSingleThreadScheduledExecutor()
特点:创建一个单线程的线程池,可以延迟或周期性地执行任务。
适用场景:适用于需要按顺序执行定时任务的场景,确保任务的顺序性和互斥性。- Executors.newWorkStealingPool(int parallelism)
特点:创