Skip to content

Conversation

@MiguelP-Dev
Copy link
Contributor

  1. Función AsyncT: Es la función principal que:

    • Recibe un nombre, una duración en segundos y un puntero a WaitGroup
    • Registra el momento de inicio y muestra cuánto durará
    • Utiliza time.Sleep() para simular el trabajo durante el tiempo especificado
    • Registra el momento de finalización
  2. Ejecución concurrente:

    • Se utiliza sync.WaitGroup para coordinar la ejecución de las goroutines
    • Las tareas A, B y C se ejecutan en paralelo mediante la palabra clave go
    • El programa espera a que todas finalicen con wg.Wait()
    • La tarea D se ejecuta de manera secuencial después de que las anteriores terminen
  3. Orden de ejecución:

    • Las tareas C (3 segundos), B (2 segundos) y A (1 segundo) comienzan casi simultáneamente
    • La tarea D (1 segundo) comienza después de que las tres anteriores hayan terminado

En Golang, la concurrencia se maneja de manera nativa con goroutines, que son más ligeras que los hilos del sistema operativo, y WaitGroup nos permite sincronizar estas goroutines de manera eficiente.

El resultado del programa mostrará cómo las tareas A, B y C se inician casi al mismo tiempo, terminan según su duración (A primero, luego B, luego C), y finalmente se ejecuta la tarea D.

@Roswell468 Roswell468 merged commit 4cab586 into mouredev:main Feb 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants