java 中使用 ThreadPoolExecutor
时间: 2023-10-17 20:04:40 浏览: 51
ThreadPoolExecutor 是 Java 中的一个线程池实现类,可以用来管理和执行线程。它提供了一些方法来创建、配置和管理线程池,可以控制线程池的大小、任务队列、拒绝策略等。
以下是一个使用 ThreadPoolExecutor 的示例:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建一个线程池,最多有5个线程,任务队列最多有10个任务
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);
// 提交10个任务到线程池
for (int i = 1; i <= 10; i++) {
Task task = new Task("Task " + i);
executor.execute(task);
}
// 关闭线程池
executor.shutdown();
}
static class Task implements Runnable {
private String name;
public Task(String name) {
this.name = name;
}
@Override
public void run() {
System.out.println("Executing " + name + " on " + Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Finished " + name + " on " + Thread.currentThread().getName());
}
}
}
```
上面的代码创建了一个最多有5个线程的线程池,然后提交了10个任务到线程池。每个任务都是一个简单的 Runnable 对象,执行完任务后会输出一些信息。
注意,线程池要调用 shutdown() 方法来关闭,否则程序不会退出。在关闭之前,可以通过调用 getActiveCount() 方法来获取当前线程池中正在执行的任务数。当任务数为0时,线程池才会真正关闭。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![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)