java 自定义线程池工具类
时间: 2024-09-14 19:16:20 浏览: 50
在Java中,自定义线程池工具类通常是为了更有效地管理和复用线程,减少在创建和销毁线程上所花的时间和资源。线程池提供了一种限制和管理资源的方法,可以在多个线程之间分配任务,提高执行效率。
以下是一个简单的自定义线程池工具类示例:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolUtils {
private static final int CORE_POOL_SIZE = 5; // 核心线程数
private static final int MAX_POOL_SIZE = 10; // 最大线程数
private static final int QUEUE_CAPACITY = 100; // 队列容量
private static final Long KEEP_ALIVE_TIME = 1L; // 空闲线程存活时间
private static ExecutorService executor = null;
// 私有化构造器,不允许外部实例化
private ThreadPoolUtils() {}
// 获取线程池实例(单例模式)
public static ExecutorService getExecutor() {
if (executor == null) {
executor = Executors.newFixedThreadPool(CORE_POOL_SIZE);
}
return executor;
}
// 关闭线程池,释放资源
public static void shutdown() {
if (executor != null && !executor.isTerminated()) {
executor.shutdown();
}
}
}
```
上述工具类使用了`Executors`工厂类创建了一个固定大小的线程池,并通过单例模式保证线程池只被创建一次。同时,提供了一个关闭线程池的方法,用于在不再需要时释放线程池占用的资源。
使用此类时,可以通过`getExecutor()`方法获取线程池实例,并执行相应的任务。当不再需要线程池时,调用`shutdown()`方法来释放资源。
阅读全文