我想知道ThreadPoolTaskExecutor和ThreadPoolExecutor之间的主要区别。我应该选择哪一个?为什么?
最佳答案
请查看文档链接以清楚地了解它们之间的差异。
ThreadPoolExecutor
一个ExecutorService,它使用可能是多个池线程中的一个执行每个提交的任务,通常使用Executors工厂方法进行配置。
线程池解决了两个不同的问题:由于减少了每个任务的调用开销,它们通常在执行大量异步任务时提供改进的性能,并且它们提供了一种绑定和管理资源(包括线程)的方法,这些资源在执行集合时消耗掉了。任务。
ThreadPoolTaskExecutor
允许以bean样式(通过其“ corePoolSize”,“ maxPoolSize”,“ keepAliveSeconds”,“ queueCapacity”属性)配置ThreadPoolExecutor
并将其作为Spring TaskExecutor公开的JavaBean。
此类也非常适合管理和监视(例如通过JMX),提供了一些有用的属性:“ corePoolSize”,“ maxPoolSize”,“ keepAliveSeconds”(均支持运行时更新); “ poolSize”,“ activeCount”(仅用于自省)。
关于java - 区别并建议ThreadPoolTaskExecutor和ThreadPoolExecutor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39934115/