Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 2.21 KB

README.adoc

File metadata and controls

45 lines (33 loc) · 2.21 KB

CompletableFuture Práctico

Este repositorio contiene una serie de ejemplos prácticos de como realizar tareas Asíncronas y/o concurrentes utilizando CompletableFuture. Cada ejemplo es susceptible a mejoras.

La construcción inicio el día 28 de julio del 2020, y se actualizará durante un par de meses hasta completar varios casos de usos que permitan demostrar diferentes uso de esta clase.

Algunas definiciones (En el contexto de este repositorio)

  • Tareas Asíncronas: Aquellas que una vez iniciada su ejecución no tenemos que esperar a que esta termine, y mientras se ejecuta se pueden ir realizando otras tareas.

  • Tareas concurrentes: Aquellas que se ejecutan al mismo tiempo, generalmente con el objetivo de obtener una respuesta más rápida.

  • CompletableFuture: Es una clase en Java, incluida desde la versión 8, y que en la versión 14 contiene más de 50 métodos.Permite entre otros la ejecución de tareas asíncronas y/o concurrentes.

Estructura del código

  • Este proyecto está estructurado con Maven

  • La versión utilizada de Java es la 14

  • Utiliza slf4j para generar los logs

  • Junit 5 es utilizado para la creación de los casos de pruebas.

  • Cada ejemplo tiene uno o más casos de prueba para ejecutar y ver su funcionamiento

Como utilizar este repositorio

  1. Clone o descargue este repositorio

  2. Ejecute los casos de pruebas desde un IDE o desde una consola de comandos ejecute el comando mvn test

Ejemplos

  1. Registro Asíncrono de pagos: Este ejemplo muestra como realizar tareas que se ejecutan al mismo tiempo y asíncronas.

  2. Consulta de información al mismo tiempo para consolidar el resultado: Este ejemplo realiza la consulta de las tareas asignadas a un grupo de desarrolladores, consultando la información de varios de ellos a la vez, una vez toda la información se encuentra cargada se consolida para retornar el resultado.

  3. Definiendo el número de tareas a ejecutar al mismo tiempo: En este ejemplo se muestra como definir el numero de tareas concurrentes, y como verificar los hilos o threads que se crean. Para este ejemplo se usa el mismo escenario del ejemplo 2.