¿En qué se diferencia la concurrencia de la paralelización?
sobes.tech AI
Respuesta de la IA
La concurrencia es la capacidad de un sistema para gestionar varias tareas que pueden ejecutarse parcialmente al mismo tiempo, alternando entre ellas. La paralelización es la ejecución simultánea de varias tareas en diferentes núcleos del procesador.
En términos simples, la concurrencia se trata de organizar el trabajo para que varias tareas puedan progresar, mientras que la paralelización se refiere a la ejecución simultánea de esas tareas.
En Go, la concurrencia se logra mediante goroutines y canales, y la paralelización ocurre cuando estas goroutines se ejecutan realmente al mismo tiempo en diferentes núcleos del procesador.
Ejemplo de concurrencia en Go:
package main
import (
"fmt"
"time"
)
func task(name string) {
for i := 0; i < 3; i++ {
fmt.Println(name, "paso", i)
time.Sleep(100 * time.Millisecond)
}
}
func main() {
go task("A")
go task("B")
time.Sleep(500 * time.Millisecond)
}
Aquí, las tareas "A" y "B" se ejecutan concurrentemente, alternando entre ellas, y si se ejecutan en un procesador multinúcleo, pueden realizarse en paralelo.