2016-04-15 120 views
2

我想知道corePoolSizethrottle-limit之间的差异,因为Spring Batch属性定义了多线程配置。Spring batch corePoolSize VS节流阀限制

我有corePoolSize和maxPoolSize感谢之间的差异这篇文章"What is the difference between corePoolSize and maxPoolSize in the Spring ThreadPoolTaskExecutor"

但我的问题是关于corePoolSize VS 油门限 ...我发现它的最好定义CorePoolSize = Throttle-限制,但我想知道...如果我定义例如: CorePoolSize = 100和油门限制= 200 ...会发生什么?是一个200线程池将被创建或100?

谢谢你的任何澄清...

+0

没有正文有答案? – Siho

回答

5

核心池大小说一个线程池执行将N数量的线程启动。节流限制T表示,不管线程池中可用的线程数量如何,只能将这些线程的T用于tasklet。

因此,您可以拥有一个核心池大小为8的线程池和两个task-with throttle限制为4的情况,在这种情况下,您将使用您的线程池。但是如果你只有一个油门限制为4的tasklet,你将使用线程池的一半。

+1

谢谢你澄清约翰,但如果油门限制超过corePoolSize?例如Throttle-limit = 200和CorePoolSize = 100? JVM会崩溃吗? – Siho

+1

我不知道实现,但我最好的猜测是,有一个信号量来限制和多余的提交到线程池将只会导致这些提交排队并在未来某个时刻执行。 –