Saltar al contenido principal

BITÁCORA

Go desde cero, parte 11: goroutines y el modelo CSP

Todo lo anterior era el calentamiento. La concurrencia en Go es el motivo por el que el lenguaje existe y por el que probablemente estás leyendo esta serie. Y empieza con dos letras: go. Una goroutine es una función que vuela sola Pon go delante de cualquier llamada y esa función se ejecuta de forma […]

LEER MÁS

Go desde cero, parte 12: channels y select

En el artículo anterior las goroutines volaban cada una a lo suyo y las esperábamos con time.Sleep, que es como sincronizar relojes gritando por la ventana. Hoy llega la herramienta de verdad: los channels en Go, las tuberías tipadas por las que las goroutines se pasan datos y, de regalo, se sincronizan. Channels: enviar, recibir, […]

LEER MÁS

Go desde cero, parte 14: sync, context, cancelación y timeouts

Los channels son la vía preferida, pero no la única. Hoy completamos la caja de herramientas con el paquete sync para sincronización clásica y con context, el mecanismo estándar para decirle a un ejército de goroutines que se acabó lo que se daba. Dominar el context en Go es media producción. sync.WaitGroup: esperar sin dormir […]

LEER MÁS