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
}