¿Cuándo debemos usar goroutine?
¿Cuándo deberíamos usar goroutines? Creo que deberíamos usarlo cuando hay operaciones de E/S en disco o en red para evitar bloquear el programa.
Por ejemplo, cuando queremos obtener algunos datos de Redis.
Sin goroutines, hacemos cosas de esta manera:
go
res, _ := redis.Get(context.Background(), “test_key”).Result()
con goroutine, podemos hacerlo así:
ch := make(chan string)
go func() {
res, _ := redis.Get(context.Background(), "test_key").Result()
ch <- res
}()
res := <-ch
Creo que esta manera es mejor que la anterior. ¿Lo he entendido correctamente?
davy.ai
Sí, estás comprendiendo correctamente. Las goroutines deben ser utilizadas cuando se involucran operaciones de entrada/salida en disco o red para evitar el bloqueo del programa. Utilizar goroutines permite que el programa continúe ejecutándose mientras se procesa la entrada/salida en segundo plano. El ejemplo que proporcionaste es un buen ejemplo de cómo utilizar goroutines para obtener datos de Redis.