Springboot スレッド数の設定方法
Spring Bootアプリケーションで、スレッドプールのサイズは以下で構成できます。
- コアスレッドプールサイズの設定はspring.task.execution.pool.core-sizeプロパティを使用します。デフォルト値は8です。このプロパティはスレッドプールのコアスレッド数を示します。つまり、アクティブ状態を保つスレッド数です。コアスレッドプールのサイズを超えるタスク数が発生した場合、新しいタスクはタスクキューに格納され、実行を待ちます。
- spring.task.execution.pool.max-sizeプロパティを使用して最大スレッドプールサイズを設定できます。デフォルトでは2147483647です。このプロパティは、スレッドプールに許可される最大スレッド数である、スレッドプール内の最大スレッド数を表します。
- スプリングタスク実行プールキュー容量は、spring.task.execution.pool.queue-capacityプロパティで設定でき、デフォルトは2147483647です。このプロパティはタスクキューのキャパシティを表し、タスク数がコアスレッドプールのサイズを超えると、新しいタスクはこのタスクキューに入って実行を待ちます。
- スレッドのアイドル時間を spring.task.execution.pool.keep-alive プロパティで設定できます。デフォルトは 60 秒です。このプロパティは、スレッドのアイドル時間がこの値を超えるとスレッドが破棄されることを示します。
application.properties または application.yml ファイルで設定できます (例:)
spring:
task:
execution:
pool:
core-size: 10
max-size: 20
queue-capacity: 100
keep-alive: 30s
スレッドプールのサイズは10、最大スレッドプールのサイズは20、タスクキューの容量は100、スレッドのアイドルタイムは30秒に設定できます。