Spring ThreadPoolTaskExecutor vs Java Executorservice cachedthreadpool [fermé]

Quels sont les avantages et les inconvénients de

printemps ThreadPoolTaskExecutor vs Java Executorservicecachedthreadpool même si spring est l'enveloppe de la concurrence Java.

Juste savoir la souplesse dans leur utilisation.

20
demandé sur BalaB 2014-07-23 10:52:14

2 réponses

un des avantages supplémentaires d'utiliser ThreadPoolTaskExecutor de printemps est qu'il est bien adapté pour la gestion et le suivi (par exemple par JMX), en fournissant plusieurs attributs utiles: "corePoolSize"," maxPoolSize"," keepalivesecondes "(toutes les mises à jour supportant l'exécution);" poolSize","activeCount".

en dehors de cela, il est évidemment simple à utiliser si vous avez déjà des injections de ressort mis en œuvre dans votre application. par en l'utilisant, vous pouvez injecter directement thread pool par setter injection comme ci-dessous:

<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> 

ThreadPoolTaskExecutor Doc

d'un autre côté ExecutorService CachedThreadPool est une bonne utilité pour partager vos plus récents threads sous-utilisés ( moins de 60 secondes). Il est important de souligner que CachedThreadPool n'est pas une classe séparée sa méthode (newCachedThreadPool ()).

CachedThreadPool Doc

12
répondu Pra Jazz 2016-11-14 04:40:52

après googler vous obtiendrez ce qui suit:

Executorservice

la java.util.simultané.L'interface ExecutorService représente un mécanisme d'exécution asynchrone capable d'exécuter des tâches en arrière-plan. Un ExecutorService est donc très similaire à un pool de threads. En fait, l'implémentation D'ExecutorService présente dans le java.util.le paquet concurrent est une implémentation de thread pool.

ThreadPoolTaskExecutor

cette implémentation ne peut être utilisée que dans un environnement Java 5 mais est aussi la plus couramment utilisée dans cet environnement. Il expose les propriétés de bean pour configurer un java.util.simultané.ThreadPoolExecutor et l'enveloppe dans un TaskExecutor. Si vous avez besoin de quelque chose de avancé tel Qu'un ScheduledThreadPoolExecutor, il est recommandé que vous utilisiez un ConcurrentTaskExecutor à la place.

2
répondu mkazma 2017-06-04 12:37:32