2016-04-15 13 views
2

corePoolSizeスロットルリミットの違いをマルチスレッド構成を定義するSpringバッチ属性として知っておきたいと思います。バッチバッチコアプールサイズVSスロットル制限

私はこの記事のおかげで"What is the difference between corePoolSize and maxPoolSize in the Spring ThreadPoolTaskExecutor"

corePoolSizeとmaxPoolSizeの違いを持っ​​ている。しかし、私の問題は、corePoolSize対スロットル制限に関する...私はそれがCorePoolSize = Throttle-を定義することが望ましいですことがわかりました例えば、私が定義した場合: CorePoolSize = 100とThrottle-limit = 200 ...どうしますか? 200個のサイズのスレッドプールが作成されるか100ですか?

は、任意の明確化をありがとう...

+0

本文には答えがありませんか? – Siho

答えて

5

コアプールサイズは、スレッドプールエグゼキュータは、スレッドのN数で始める予定だという。スロットル制限Tでは、スレッドプールで使用可能なスレッドの数にかかわらず、タスクレットにこれらのスレッドのうちのTしか使用しないことが示されています。

コアプールサイズが8のスレッドプールと、スレッドプールを利用する場合のスロットル制限が4の2つのタスクレットを持つことができます。しかし、スロットル制限が4のタスクレットが1つしかない場合は、スレッドプールの半分を使用します。

+1

この説明はありがとうJohnさん、ありがとうございます。しかし、スロットル制限がcorePoolSizeを超えたらどうなりますか?たとえばスロットルリミット= 200、CorePoolSize = 100? JVMはクラッシュしますか? – Siho

+1

私は実装がわかりませんが、私の推測では、スロットルのためのセマフォが存在し、スレッドプールへの超過分だけがキューに入れられ、将来、ある時点で実行されます。 –