Java如何创建线程池
在Java中,创建线程池可以使用Executors
工具类提供的方法,也可以直接使用ThreadPoolExecutor
类手动创建。以下是两种创建线程池的示例代码:
使用Executors
创建线程池:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建固定大小的线程池
ExecutorService threadPool = Executors.newFixedThreadPool(4);
// 使用线程池...
// 关闭线程池
threadPool.shutdown();
}
}
手动创建ThreadPoolExecutor
:
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class ThreadPoolExecutorExample {
public static void main(String[] args) {
// 创建一个固定大小的线程池
BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>();
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(
4, // 核心线程数
4, // 最大线程数
0L, // 空闲时间
TimeUnit.MILLISECONDS, // 空闲时间单位
workQueue, // 工作队列
Executors.defaultThreadFactory(), // 线程工厂
new ThreadPoolExecutor.AbortPolicy() // 拒绝策略
);
// 使用线程池...
// 关闭线程池
threadPool.shutdown();
}
}
Executors
方法创建的线程池通常使用预定义的配置,而ThreadPoolExecutor
提供了更详细的配置选项。手动创建ThreadPoolExecutor
时,可以指定核心线程数、最大线程数、队列大小、超时时长和时间单位、拒绝策略等参数。
评论已关闭