Sobes.tech
Middle+

¿Qué son la asincronía, la paralelización y la concurrencia en el contexto de Go?

sobes.tech AI

Respuesta de la IA

En el contexto de Go:

  • Asincronía — ejecución de operaciones sin bloquear el hilo principal, generalmente mediante goroutines y canales. Permite iniciar tareas que pueden ejecutarse de manera independiente y no esperar a su finalización.

  • Paralelismo — ejecución simultánea de varias tareas en diferentes núcleos del procesador. En Go, esto se logra mediante el planificador de goroutines, que las distribuye en los hilos del sistema.

  • Concurrencia — capacidad de un programa para gestionar varias tareas que pueden ejecutarse simultáneamente o en secuencia, asegurando un acceso correcto a los recursos compartidos.

Ejemplo de goroutine:

func worker(id int) {
    fmt.Printf("Trabajador %d iniciado\n", id)
    // trabajo
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // inicio asíncrono
    }
    time.Sleep(time.Second) // esperamos a que terminen
}