Sobes.tech
Junior — Middle

¿Podría explicar el concepto de hilos ligeros y cómo se diferencian de los hilos de ejecución normales?

sobes.tech AI

Respuesta de la IA

Los hilos ligeros (goroutines en Go) son una abstracción para la ejecución paralela de código, que es más liviana y eficiente en recursos que los hilos del sistema convencional.

Diferencias:

  • Recursos: las goroutines ocupan mucho menos memoria (generalmente unos pocos kilobytes), mientras que un hilo del sistema requiere mucho más (generalmente megabytes).
  • Planificación: las goroutines son planificadas por el planificador de Go dentro del proceso, no por el sistema operativo, lo que permite cambiar rápidamente entre ellas.
  • Creación: lanzar una goroutine es muy rápido y barato, se pueden crear miles e incluso millones simultáneamente.

Ejemplo de creación de una goroutine:

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

func main() {
    go sayHello() // inicia la función en una goroutine separada
    time.Sleep(time.Second) // esperamos para que la goroutine tenga tiempo de ejecutarse
}

De esta forma, los hilos ligeros permiten aprovechar el paralelismo de manera eficiente sin grandes costos adicionales.