Sobes.tech
Principal

¿Qué son las goroutines en Go? ¿En qué se diferencia una goroutine de un hilo del sistema operativo?

sobes.tech AI

Respuesta de la IA

Las goroutines en Go son hilos ligeros de ejecución gestionados por el runtime de Go, que permiten ejecutar funciones en paralelo.

Diferencias entre una goroutine y un hilo del sistema operativo:

  • Ligereza: las goroutines ocupan mucho menos memoria (generalmente unos pocos kilobytes), mientras que los hilos del sistema operativo son significativamente más grandes.
  • Planificación: las goroutines son planificadas por el planificador de Go dentro del proceso, no por el sistema operativo, lo que proporciona un cambio de contexto más rápido y eficiente.
  • Escalabilidad: se pueden lanzar miles e incluso millones de goroutines simultáneamente, lo cual no es posible con hilos del sistema operativo debido a limitaciones de recursos.

Ejemplo de creación de una goroutine:

func sayHello() {
    fmt.Println("Hola desde la goroutine")
}

func main() {
    go sayHello() // lanzamos la goroutine
    time.Sleep(time.Second) // esperamos para que la goroutine tenga tiempo de ejecutarse
}