Ejercicio de programación con Go: Canales y comunicación entre Goroutines

Código
Práctica
0h 30m

Go: ejercicio canales y comunicación entre goroutines, aprende y resuelve problemas de concurrencia a través de la comunicación entre goroutines, manejando canales sin buffer.

Este ejercicio de programación te introduce a los conceptos de concurrencia y comunicación inter-goroutines en Go utilizando canales. 

El reto de código consiste en implementar una simulación de una conversación entre dos goroutines

Para ello, debes crear un canal sin buffer que facilite la comunicación entre ambas, asegurándose de que las operaciones de envío y recepción se realicen de manera sincronizada.

  • La primera goroutine tiene la tarea de enviar un saludo a través del canal y esperar una respuesta. 
  • La segunda goroutine debe recibir este saludo, imprimirlo y responder de vuelta usando el mismo canal.

 

Un aspecto crítico del reto es asegurar que el flujo de datos fluya sin interrupciones y sin caer en deadlocks. Además, la goroutine principal debe enfocarse en recibir la respuesta de la segunda goroutine y mostrarla antes de finalizar el programa.

Requisitos:

  1. Crea un canal sin buffer (unbuffered channel) para la comunicación.
  2. Implementa dos goroutines:
    • La primera goroutine debe enviar un mensaje de saludo a través del canal y esperar una respuesta.
    • La segunda goroutine debe recibir el saludo, imprimirlo, y enviar una respuesta de vuelta.
  3. La goroutine principal debe imprimir la respuesta recibida de la segunda goroutine antes de finalizar.

Importante: Asegúrate de manejar correctamente el flujo de datos para evitar deadlocks y garantizar que cada goroutine complete su tarea de manera sincronizada.

Empezar ejercicio de programación

Todos los ejercicios de programación de Go

Evalúa tus conocimientos con ejercicios de programación en Go de tipo Test, Puzzle, Código y Proyecto con VSCode.

Certificados de superación de Go

Supera todos los retos de Go y obtén estos certificados de superación para mejorar tu currículum y tu empleabilidad.

Tutorial para resolver este ejercicio de programación

Go

Go

Canales y comunicación entre Goroutines

Concurrencia y paralelismo

Otros tutoriales de programación con Go