24.2. サーバー汎用スレッドプール

汎用スレッドプールは、サーバー側でほとんどの非同期操作に使用されます。内部的には、java.util.concurrent.ThreadPoolExecutor インスタンスにマッピングします。

このプールによって使用されるスレッドの最大数は、thread-pool-max-size 属性を使用して設定します。

thread-pool-max-size-1 に設定された場合、スレッドプールには上限がなく、要求を満たすのに十分なスレッドが利用できない場合は、新しいスレッドが要求に応じて作成されます。その後アクティビティーがおさまると、スレッドはタイムアウトになり、閉じられます。

thread-pool-max-size がゼロより大きい正の整数に設定されている場合、スレッドプールはバインドされます。要求を受け取り、プールに利用可能な空きスレッドがない場合、要求はスレッドが利用可能になるまでブロックされます。バインドされたスレッドプールは、上限が非常に低く設定された場合にデッドロックの状況になることがあるため、注意して使用することが推奨されます。

thread-pool-max-size のデフォルト値は 30 です。デフォルトの JBoss EAP メッセージングサーバーに新しい値を設定するには、以下の管理 CLI コマンドを使用します。

/subsystem=messaging-activemq/server=default:write-attribute(name=thread-pool-max-size,value=40)

バインドされない (キャッシュ) スレッドプールとバインドされる (固定) スレッドプールの詳細については、ThreadPoolExecutor の Javadoc を参照してください。