Concurrencia vs Paralelismo

Concurrencia es organizar un programa para manejar varias tareas a la vez, aunque no corran exactamente al mismo tiempo. Es sobre diseño y estructura.

Paralelismo es ejecutar varias tareas literalmente al mismo tiempo, usando múltiples núcleos o procesadores. Es sobre ejecución real simultánea.

Puedes tener concurrencia sin paralelismo (un solo núcleo) y paralelismo sin buena concurrencia. Lo ideal es combinar ambos.

Escenario: Un gopher cuya función es trasladar los libros al incinerador

Uploaded image
1 gopher

Escenario: Duplicando todo -> Paralelismo

Uploaded image
gopher parallel

Escenario: Concurrencia y paralelismo

Uploaded image

Tomado de https://go.dev/blog/waza-talk