Ejercicio de programación con Go: Canales y comunicación entre Goroutines
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:
- Crea un canal sin buffer (
unbuffered channel
) para la comunicación. - 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.
- 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.
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.
Control de flujo y estructuras de bucle
Tipos de datos, variables y constantes
Composición de structs en lugar de herencia
Estructuras de control
Arrays y slices
Operadores y expresiones
Instalación Go primer programa
Errores personalizados y trazabilidad
Sistema API REST gestión de libros
Polimorfismo a través de Interfaces
Goroutines y concurrencia básica
Agenda de contactos por consola
Métodos HTTP con net/http
Métodos con receptores por valor y por puntero
Evaluación Go
Crear e invocar funciones
Estructuras structs
Introducción a Go
Estructuras de datos Mapas
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
Canales y comunicación entre Goroutines
Concurrencia y paralelismo