Spring ThreadPoolTaskExecutor vs Java Executorservice cachedthreadpool [已关闭]
使用有什么优点和缺点
Spring ThreadPoolTaskExecutor vs Java Executorservice,即使spring是Java并发的包装器。cachedthreadpool
只是想知道使用它们的灵活性。
使用有什么优点和缺点
Spring ThreadPoolTaskExecutor vs Java Executorservice,即使spring是Java并发的包装器。cachedthreadpool
只是想知道使用它们的灵活性。
使用Spring的ThreadPoolTaskExecutor的一个附加优势是它非常适合管理和监控(例如通过JMX),提供了几个有用的属性:“corePoolSize”,“maxPoolSize”,“keepAliveSeconds”(所有支持运行时的更新);“poolSize”、“activeCount”。
除此之外,如果您已经在应用程序中实施了弹簧注射,那么使用起来显然很简单。通过使用它,您可以通过setter注入直接注入线程池,如下所示:
<bean id="taskExecutor"
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="WaitForTasksToCompleteOnShutdown" value="true" />
</bean>
另一方面,ExecutorService CachedThreadPool是很好的实用程序,可以共享您最近未充分利用的线程(小于60秒)。需要指出的是,CachedThreadPool不是其方法的单独类(newCachedThreadPool())。
谷歌搜索后,您将获得以下内容:
执行者服务
java.util.concurrent.ExecutorService 接口表示一种异步执行机制,它能够在后台执行任务。因此,执行器服务与线程池非常相似。实际上,java.util.concurrent 包中存在的 ExecutorService 的实现是线程池实现。
ThreadPoolTaskExecutor
此实现只能在 Java 5 环境中使用,但也是该环境中最常用的实现。它公开了用于配置 java.util.concurrent.ThreadPoolExecutor 的 bean 属性,并将其包装在 TaskExecutor 中。如果您需要一些高级功能,例如 ScheduledThreadPoolExecutor,建议您改用 ConcurrentTaskExecutor。