spring boot 自定义线程池
时间: 2023-09-11 17:09:52 浏览: 152
Spring Boot利用@Async如何实现异步调用:自定义线程池
在Spring Boot中,可以使用Java自带的线程池来创建自定义线程池。创建自定义线程池的步骤如下:
1. 创建一个配置类,用于配置线程池相关参数。
```java
@Configuration
public class ThreadPoolConfig {
@Bean
public ThreadPoolExecutor threadPoolExecutor() {
return new ThreadPoolExecutor(
5, // 核心线程数
10, // 最大线程数
60, // 空闲线程存活时间
TimeUnit.SECONDS, // 时间单位
new ArrayBlockingQueue<>(100), // 阻塞队列
new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略
);
}
}
```
2. 在需要使用线程池的地方注入该线程池。
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private ThreadPoolExecutor threadPoolExecutor;
@Override
public void executeTask(Runnable task) {
threadPoolExecutor.execute(task);
}
}
```
这样,在调用`executeTask()`方法时,就会使用我们自定义的线程池来执行任务。需要注意的是,在使用线程池时,应该避免使用`new Thread()`的方式创建线程,而应该使用线程池来管理线程的生命周期。
阅读全文