Esta pagina se ve mejor con JavaScript habilitado

Go routines

 ·  🎃 kr0m

Go routines es una manera de ejecutar funciones en background mientras la ejecución del programa principal sigue su curso. Esto hace posible la ejecución de código de forma asíncrona, resultando muy útil para la ejecución de tareas en paralelo.


Si eres nuevo en el mundo de Go te recomiendo los siguientes artículos anteriores:


En el siguiente código vamos a llamar a una función del modo tradicional y acto seguido a la misma mediante goroutine, pero veremos como aparece el going posterior al goroutine ya que el hilo principal de ejecución sigue adelante, no queda bloqueado mientras se ejecuta el goroutine.

vi goroutine.go
package main

import (
    "fmt"
    "time"
)

func f(from string) {
    for i := 0; i < 4; i++ {
        fmt.Println(from, ":", i)
    }
}

func main() {
    // Regular function call:
    f("direct")
    // GoRoutine function call:
    go f("goroutine")
    fmt.Println("going")
    // Sleep 1s
    time.Sleep(time.Second)
    fmt.Println("done")
}

Si ejecutamos el código veremos la siguiente salida:

go run goroutine.go

direct : 0
direct : 1
direct : 2
direct : 3
going
goroutine : 0
goroutine : 1
goroutine : 2
goroutine : 3
done
Si te ha gustado el artículo puedes invitarme a un RedBull aquí