#4 Concurrencia en Golang – #Channels – anatomía, canales direccionales, funciones y ejemplos



#4 Concurrencia en Golang – #Channels – anatomía, canales direccionales, funciones y ejemplos

#4  Concurrencia en Golang - #Channels - anatomía, canales direccionales, funciones y ejemplos

En este video seguimos trabajando con #channels, vemos varios ejemplos de casos de uso de como sacar ventajas de la estructura channel y sus funcionalidades.

Ejemplo de como cerrar un canal con la función close, y como podemos tomar ventaja de un canal abierto o cerrado para su lectura, siendo así muy extensible aunque nosotros no sepamos la cantidad de elementos, podemos crear un loop “infinito” y delegar en la función que escribe cuando tenemos que dejar de leer de ese canal. También vemos los datos que devuelve un channel output, que no es solo el valor, sino también un bool que nos expresa si el canal esta abierto o cerrado.

Vimos la función range, usada en channels, la misma que usamos para recorrer slices o mapas.

Las funciones built-in len() y cap() para ver la longitud (cantidad de elementos que el canal contiene) y capacidad (cantidad de elementos que el canal puede contener)

Hicimos un ejemplo con canales con dirección que nos sirven para pasar mensajes, estilo cola de mensajes o queue, donde el mensaje (o cualquier valor) se pasa solamente a un canal. Sin la necesidad de tener que enviárselo a través de una función o método.

Por último, vemos el zero value de los channels, el cual es nil.

GitHub:
https://github.com/tomiok/golang-concurrency/tree/master/video-4

Comments are closed.