java threadpoolexecutor的用法
时间: 2024-10-16 07:11:07 浏览: 28
在Java中,ThreadPoolExecutor是一个强大的线程管理工具,它允许你创建固定大小、可缓存、定长队列或者其他类型的线程池。它的主要作用是用来管理和调度一组 worker 线程,用于执行可提交的任务。以下是 ThreadPoolExecutor 的基本用法:
1. **创建 ExecutorService**:
```java
ThreadPoolExecutor executor = new ThreadPoolExecutor(
corePoolSize, // 核心线程数
maximumPoolSize, // 最大线程数
keepAliveTime, // 空闲线程存活时间
TimeUnit.MILLISECONDS, // 时间单位
workQueue, // 任务队列(通常使用 LinkedBlockingQueue)
threadFactory, // 线程工厂 (可以自定义线程名)
handler // 容纳拒绝策略 (默认 RejectedExecutionHandlerAbort 或者你可以自定义策略)
);
```
2. **提交任务**:
```java
executor.execute(Runnable task); // 提交 Runnable 对象
executor.submit(Callable<ReturnType> callable); // 提交 Callable 对象,可以获取返回值并处理异常
```
3. **关闭线程池**:
```java
// 当所有任务完成或者线程池关闭时调用
executor.shutdown();
// 如果希望等待所有任务完成后再关闭线程池
executor.awaitTermination(timeout, unit);
```
阅读全文