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.