ExecutorService线程池对象 newCachedThreadPool()的使用案例
时间: 2023-07-19 17:19:40 浏览: 59
当需要执行许多短时间的任务时,可以使用 `ExecutorService` 的 `newCachedThreadPool()` 方法创建一个线程池对象。该线程池会根据需要自动创建新的线程,并在空闲一定时间后自动回收不再使用的线程,因此适用于任务数量不确定或任务执行时间短的情况。
下面是一个使用 `newCachedThreadPool()` 方法创建线程池对象的示例代码:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class CachedThreadPoolExample {
public static void main(String[] args) {
// 创建一个可缓存的线程池对象
ExecutorService executor = Executors.newCachedThreadPool();
// 提交多个任务
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.");
}
}
}
```
在以上示例代码中,我们首先使用 `Executors.newCachedThreadPool()` 方法创建了一个可缓存的线程池对象 `executor`,并提交了多个任务。每个任务都是一个简单的输出语句,用于模拟一个短时间的任务。
最后,我们调用了 `executor.shutdown()` 方法关闭线程池。需要注意的是,一旦调用了 `shutdown()` 方法,线程池将不再接受新的任务,但已经提交的任务将继续执行直到完成。
阅读全文