在Java中,创建线程池可以通过以下几种方法:
1. 使用`Executors`工厂类提供的方法:
`newFixedThreadPool(int n)`:创建一个固定大小的线程池,可控制线程最大并发数,超出的线程会在队列中等待。
`newCachedThreadPool()`:创建一个可缓存的线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收线程,则新建线程。
`newSingleThreadExecutor()`:创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
`newScheduledThreadPool(int corePoolSize)`:创建一个可以定时或周期性执行任务的线程池。
2. 使用`ThreadPoolExecutor`类进行自定义创建:
ExecutorService executor = new ThreadPoolExecutor(int corePoolSize, // 核心池大小int maximumPoolSize, // 最大线程数long keepAliveTime, // 空闲线程存活时间TimeUnit unit, // 时间单位BlockingQueueworkQueue // 任务队列 );

使用线程池的好处包括提高响应速度、降低资源消耗、便于线程管理等。创建线程池后,可以通过`execute(Runnable command)`方法提交任务执行。
下面是一个使用`newFixedThreadPool`的示例代码:
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ThreadPoolExample {public static void main(String[] args) {// 创建一个固定大小为 5 的线程池ExecutorService executor = Executors.newFixedThreadPool(5);// 向线程池提交 10 个任务for (int i = 0; i < 10; i++) {Runnable task = new MyTask(i);executor.submit(task);}// 关闭线程池executor.shutdown();}}
请根据具体需求选择合适的线程池创建方法。
