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.
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>
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 ()).
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.