自定义线层池方法 new ThreadPoolExecutor @Bean
时间: 2024-03-22 21:36:22 浏览: 136
自定义线程池方法`new ThreadPoolExecutor`是Java中用于创建线程池的一种方式。通过使用`ThreadPoolExecutor`类,我们可以自定义线程池的各种参数,以满足不同的需求。
下面是一个示例代码,展示如何使用`new ThreadPoolExecutor`方法创建一个自定义线程池的`@Bean`:
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Configuration
public class ThreadPoolConfig {
@Bean
public Executor threadPoolExecutor() {
ThreadPoolExecutor executor = new ThreadPoolExecutor(
10, // 核心线程数
20, // 最大线程数
60, // 线程空闲时间(单位:秒)
TimeUnit.SECONDS, // 时间单位
new LinkedBlockingQueue<>()); // 任务队列
return executor;
}
}
```
在上述代码中,我们通过`new ThreadPoolExecutor`方法创建了一个线程池对象`executor`,并设置了以下参数:
1. `10`:核心线程数,表示线程池中始终保持的活动线程数量。
2. `20`:最大线程数,表示线程池中允许的最大线程数量。
3. `60`:线程空闲时间,表示当线程池中的线程空闲超过该时间时,多余的线程将被销毁。
4. `TimeUnit.SECONDS`:时间单位,这里设置为秒。
5. `new LinkedBlockingQueue<>()`:任务队列,用于存放待执行的任务。
通过以上配置,我们可以创建一个自定义的线程池,并将其声明为一个`@Bean`,以便在其他地方进行使用。
阅读全文