java ThreadPoolExecutor使用
时间: 2023-07-17 09:55:53 浏览: 58
ThreadPoolExecutor是Java中用于管理线程池的类。它提供了一种方便的方式来执行并发任务,而不需要手动创建和管理线程。
要使用ThreadPoolExecutor,首先需要创建一个实例,并指定线程池的参数。这些参数包括核心线程数、最大线程数、线程空闲时间、工作队列等。
下面是一个简单的示例代码,演示如何使用ThreadPoolExecutor:
```java
import java.util.concurrent.*;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建线程池
ThreadPoolExecutor executor = new ThreadPoolExecutor(
2, // 核心线程数
5, // 最大线程数
1, // 线程空闲时间
TimeUnit.SECONDS, // 时间单位
new ArrayBlockingQueue<>(10) // 工作队列
);
// 提交任务给线程池
for (int i = 0; i < 10; i++) {
final int taskNumber = i;
executor.execute(() -> {
System.out.println("Task " + taskNumber + " is running.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task " + taskNumber + " is completed.");
});
}
// 关闭线程池
executor.shutdown();
}
}
```
在上面的示例中,我们创建了一个ThreadPoolExecutor实例,并指定了核心线程数为2,最大线程数为5,线程空闲时间为1秒,工作队列使用了ArrayBlockingQueue。
然后,我们通过调用executor.execute()方法来提交任务给线程池。每个任务是一个Runnable对象,在示例中我们使用lambda表达式来定义任务。
最后,我们调用executor.shutdown()方法来关闭线程池。这将等待所有任务执行完毕,并停止线程池的运行。
希望以上代码对你有所帮助!如果你有更多关于ThreadPoolExecutor的问题,可以继续问我。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)