Introducción
El laboratorio de canales está diseñado para probar su comprensión de los canales en Golang. Los canales se utilizan para conectar gorutinas concurrentes, permitiendo que se envíen y reciban valores entre ellas.
This tutorial is from open-source community. Access the source code
💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí
El laboratorio de canales está diseñado para probar su comprensión de los canales en Golang. Los canales se utilizan para conectar gorutinas concurrentes, permitiendo que se envíen y reciban valores entre ellas.
En este laboratorio, se le pide que cree un nuevo canal y envíe un valor a través de él desde una nueva gorutina. Luego recibirá el valor del canal y lo imprimirá.
make(chan val-type)
para crear un nuevo canal.channel <-
para enviar un valor al canal.<-channel
para recibir un valor del canal.## Cuando ejecutamos el programa, el mensaje `"ping"` se
## pasa con éxito de una gorutina a otra a través de
## nuestro canal.
$ go run channels.go
ping
## Por defecto, los envíos y recepciones se bloquean hasta
## que tanto el emisor como el receptor estén listos. Esta
## propiedad nos permite esperar al final de nuestro
## programa el mensaje `"ping"` sin tener que utilizar ninguna
## otra sincronización.
A continuación está el código completo:
// Los _Canales_ son las tuberías que conectan gorutinas
// concurrentes. Puede enviar valores a través de canales
// desde una gorutina y recibir esos valores en otra
// gorutina.
package main
import "fmt"
func main() {
// Crea un nuevo canal con `make(chan val-type)`.
// Los canales son tipados por los valores que transportan.
messages := make(chan string)
// _Envía_ un valor a un canal utilizando la sintaxis
// `channel <-`. Aquí enviamos `"ping"` al canal
// `messages` que creamos anteriormente, desde una nueva
// gorutina.
go func() { messages <- "ping" }()
// La sintaxis `<-channel` _recibe_ un valor del canal.
// Aquí recibiremos el mensaje `"ping"` que enviamos
// anteriormente y lo imprimiremos.
msg := <-messages
fmt.Println(msg)
}
El laboratorio de Canales prueba su capacidad para utilizar canales en Golang para enviar y recibir valores entre gorutinas concurrentes. Al completar este laboratorio, tendrá una mejor comprensión de cómo funcionan los canales y cómo se pueden utilizar para mejorar el rendimiento de sus programas de Golang.