Spring Boot でスレッドプールを設定する方法を教えてください。
スプリングブートでは、設定ファイルかプログラム上でマルチスレッドを設定できます。以下はよく使われる 2 つの方法です。
- プロパティファイルの使用: application.properties または application.yml ファイルでスレッドプールのプロパティを構成できます。たとえば、スレッドプールの corePoolSize、maxPoolSize、queueCapacity などのプロパティは、次の構成で構成できます。
application.properties
# 线程池配置
spring.task.execution.pool.core-size=10
spring.task.execution.pool.max-size=20
spring.task.execution.pool.queue-capacity=100
application.yml:
# 线程池配置
spring:
task:
execution:
pool:
core-size: 10
max-size: 20
queue-capacity: 100
- 開発コードを使う方法: 設定クラスにスレッドプールのBeanを定義し、属性を設定します。例えば、次のコードでスレッドプールのBeanを定義します。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@Configuration
public class ThreadPoolConfig {
@Bean
public ThreadPoolTaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("MyThreadPool-");
executor.initialize();
return executor;
}
}
@Beanアノテーションが付与された上記コードでは、taskExecutorという名前のスレッドプールBeanが定義され、コア·スレッド数、最大スレッド数、キュー容量、スレッド名の接頭辞などの属性が設定されています。