Saltar al contenido

¿Cuál es la diferencia entre FixedThreadPool y ThreadPoolTaskExecutor?

Esta noticia ha sido aprobado por nuestros especialistas así se asegura la exactitud de nuestro tutorial.

Solución:

ThreadPoolTaskExecutor es una clase de Spring Framework. Por otra parte Executors::newFixedThreadPool crea un estándar ThreadPoolExecutor grupo de subprocesos que proviene de Java estándar y está disponible desde Java 5.

De los documentos de ThreadPoolTaskExecutor:

JavaBean que permite configurar un ThreadPoolExecutor en estilo bean (a través de sus propiedades “corePoolSize”, “maxPoolSize”, “keepAliveSeconds”, “queueCapacity”) y exponiéndolo como Spring TaskExecutor.

….

Esta clase implementa Spring TaskExecutor interfaz, así como la Executor interfaz, siendo la primera la interfaz principal, la otra solo sirve como conveniencia secundaria. Por esta razón, el manejo de excepciones sigue el TaskExecutor contrato en lugar del Executor contrato, en particular con respecto a la TaskRejectedException.

Darse cuenta de ThreadPoolTaskExecutor implementa muchas interfaces Spring como Aware, BeanNameAware, DisposableBean, InitializingBean lo que hace que sea más fácil trabajar con un pool como Spring bean.

También eche un vistazo a la respuesta de Karol Dowbecki que señala correctamente las diferencias en los parámetros de esos grupos.

En tu ejemplo Spring’s ThreadPoolTaskExecutor creará un ThreadPoolExecutor con corePoolSize de 50, maxPoolSize de Integer.MAX_VALUE y keepAlive de 60 segundos.

Mientras tanto Executors.newFixedThreadPool(50) establecerá ambos corePoolSize y maxPoolSize a 50 y keepAlive de 0 segundos (ver código fuente de Java).

Si te ha resultado de provecho nuestro post, te agradeceríamos que lo compartas con más programadores de esta forma nos ayudas a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *