Sobes.tech
Senior

¿Tienes una idea de la diferencia entre flujo y proceso?

sobes.tech AI

Respuesta de la IA

El proceso es una unidad independiente de ejecución con su propio espacio de direcciones, recursos y estado. Un hilo (goroutine en Go) es una unidad más ligera dentro del proceso, que comparte memoria y recursos del proceso, pero tiene su propia pila y contexto de ejecución.

En Go, una goroutine es un hilo ligero gestionado por el runtime de Go, que permite ejecutar miles de tareas en paralelo con costos mínimos en comparación con los hilos del sistema.

Las principales diferencias:

  • El proceso tiene un espacio de direcciones separado, los hilos dentro del proceso comparten memoria.
  • Crear un proceso es más costoso en recursos que crear un hilo.
  • En Go, una goroutine son hilos gestionados a nivel del lenguaje, no del sistema operativo.

Ejemplo de creación de una goroutine en Go:

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

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