java实现ThreadPoolExecutor的例子
时间: 2023-05-19 13:03:15 浏览: 98
以下是一个简单的Java实现ThreadPoolExecutor的例子:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class ThreadPoolExecutorExample {
public static void main(String[] args) {
// 创建一个线程池,其中包含5个线程
ExecutorService executor = Executors.newFixedThreadPool(5);
// 将线程池转换为ThreadPoolExecutor
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor;
// 执行10个任务
for (int i = 0; i < 10; i++) {
executor.execute(new Task(i));
}
// 关闭线程池
executor.shutdown();
}
static class Task implements Runnable {
private int taskId;
public Task(int taskId) {
this.taskId = taskId;
}
@Override
public void run() {
System.out.println("Task #" + taskId + " is running on thread " + Thread.currentThread().getName());
}
}
}
```
这个例子创建了一个包含5个线程的线程池,然后执行了10个任务。每个任务都是一个简单的Runnable,只是输出一些信息。注意,这个例子中的线程池是通过Executors工厂方法创建的,但是我们将其转换为ThreadPoolExecutor以便更好地控制线程池的行为。
阅读全文