创建线程池的几种方式
时间: 2023-09-12 10:09:37 浏览: 104
在Java中,创建线程池有以下几种方式:
1. 使用ThreadPoolExecutor类手动创建线程池:
```java
int corePoolSize = 10; // 核心线程数
int maximumPoolSize = 20; // 最大线程数
long keepAliveTime = 60; // 线程空闲时间
TimeUnit unit = TimeUnit.SECONDS; // 时间单位
BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(100); // 任务队列
ExecutorService executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);
```
2. 使用Executors工具类创建线程池(推荐):
```java
int corePoolSize = 10; // 核心线程数
int maximumPoolSize = 20; // 最大线程数
ExecutorService executor = Executors.newFixedThreadPool(corePoolSize);
// 或者
// ExecutorService executor = Executors.newCachedThreadPool();
// 或者
// ExecutorService executor = Executors.newSingleThreadExecutor();
```
3. 使用ScheduledThreadPoolExecutor类创建定时任务线程池:
```java
int corePoolSize = 10; // 核心线程数
ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(corePoolSize);
```
无论使用哪种方式创建线程池,都可以通过调用`execute`方法或`submit`方法来提交任务给线程池执行。
需要注意的是,在使用完线程池后,应该调用`shutdown`方法来关闭线程池,释放资源。
阅读全文