Translate
domingo, 20 de octubre de 2019
Channel Buffering en Go
Por defecto, los canales no tienen búfer, lo que significa que solo aceptarán envíos si hay una recepción correspondiente es decir una lista para recibir los valores enviados. Los canales almacenados temporalmente aceptan un número limitado de valores sin un receptor correspondiente para esos valores.
Veamos un ejemplo:
package main
import "fmt"
func main() {
messages := make(chan string, 2)
messages <- "buffered"
messages <- "channel"
fmt.Println(<-messages)
fmt.Println(<-messages)
}
$ go run channel-buffering.go
buffered
channel
Aquí hacemos un canal de cadenas que almacenan en búfer hasta 2 valores.
Debido a que este canal está protegido, podemos enviar estos valores al canal sin una recepción concurrente correspondiente.
Más tarde podemos recibir dos valores más.
Dejo link : https://gobyexample.com/channel-buffering