java - Spring 批处理 corePoolSize VS throttle 限制

标签 java spring multithreading spring-batch

我想知道 corePoolSizethrottle-limit 之间的区别,作为定义多线程配置的 Spring Batch 属性。

感谢这篇文章 "What is the difference between corePoolSize and maxPoolSize in the Spring ThreadPoolTaskExecutor",我知道了 corePoolSize 和 maxPoolSize 之间的区别

但我的问题涉及 corePoolSizethrottle-limit...我发现最好定义 CorePoolSize = Throttle-limit,但我想知道...例如,如果我定义: CorePoolSize = 100 和 Throttle-limit = 200...会发生什么?将创建一个 200 大小的线程池还是 100 个?

感谢您的任何澄清...

最佳答案

核心池大小表示线程池执行程序将从 N 个线程开始。 throttle-limit T 表示,无论线程池中可用线程的数量如何,只将这些线程中的 T 用于 tasklet。

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

关于java - Spring 批处理 corePoolSize VS throttle 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36645648/

相关文章:

c# - 来自取消 token 的任务?

php - ajax多线程

java - 在已使用 Paint 方法的 JPanel 上绘制形状

java - 打开内部框架时管理大型机中的按钮状态

java - Java中如何检查给定的字符串是否为 boolean 值?

没有STOMP,sockjs的Spring 4 websocket

java - 我可以使用 HashMap 在 Spring Boot 中选择要 Autowiring 的接口(interface) (DAO) 吗?

Qt 应用程序中多个线程中的 SQL 连接

java - 为什么需要 boolean 返回类型?

java - 使用自定义身份验证处理 Spring 5 中的 AuthenticationException