Java ThreadPoolExecutor 线程池 创建
时间: 2024-12-16 15:13:08 浏览: 49
Java ThreadPoolExecutor是一个线程池实现,它允许开发者自定义线程的数量、任务队列策略以及线程的工作模式。创建ThreadPoolExecutor通常需要以下几个步骤:
1. **创建配置**: 首先,你需要确定线程池的基本属性,如核心线程数(corePoolSize)、最大线程数(maximumPoolSize),是否预提交空闲线程(allowCoreThreadTimeOut),工作线程超时时间(keepAliveTime),以及线程工厂(ThreadFactory)等。
```java
int corePoolSize = 5;
int maximumPoolSize = 10;
long keepAliveTime = 60L; // 单位为秒
ThreadFactory threadFactory = Executors.defaultThreadFactory();
```
2. **初始化线程池**: 使用`new ThreadPoolExecutor`构造函数将上述配置组合起来创建线程池。
```java
ThreadPoolExecutor executor = new ThreadPoolExecutor(
corePoolSize,
maximumPoolSize,
keepAliveTime,
TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(),
threadFactory,
new ThreadPoolExecutor.CallerRunsPolicy());
```
这里`LinkedBlockingQueue`是默认的任务队列,如果你需要其他队列策略可以替换它。
3. **开始执行任务**: 你可以通过`execute()`方法向线程池提交任务(Runnable或者Callable)。
```java
executor.execute(new Runnable() {
@Override
public void run() {
// 你的任务代码
}
});
```
4. **关闭线程池**: 当不再需要线程池时,记得调用`shutdown()`来停止接收新任务,`awaitTermination()`等待所有任务完成后再终止。
```java
executor.shutdown(); // 或者 executor.shutdownNow() 如果你想立即终止所有任务
while (!executor.isTerminated()) { } // 等待所有任务完成
```
阅读全文
相关推荐


















