Goroutines

La razón por la que Go corre servidores

Un servidor de PawWalk nunca está haciendo una sola cosa. Mientras responde la petición de lista de walkers para un teléfono, también está transmitiendo coordenadas GPS a un cliente viendo un paseo en vivo, cobrando una tarjeta, y aceptando una reserva nueva — todo en el mismo instante. El trabajo completo de un backend es muchas cosas a la vez.

La respuesta de Go es la goroutine: una función que corre de forma concurrente con todo lo demás. Lanzas una poniendo la palabra go antes de una llamada. Esa es toda la sintaxis.

Una goroutine no es un hilo del sistema operativo. Go multiplexa miles de ellas sobre un puñado de hilos reales, así que arrancar una cuesta cerca de 2 KB de pila. Levantar 10 000 goroutines es normal; levantar 10 000 hilos derretiría la máquina.