Diccionario

Concurrencia

La capacidad de un programa de avanzar en varias tareas a la vez, por ejemplo con varios hilos o goroutines.

Un programa concurrente reparte el trabajo en tareas que avanzan de forma intercalada o, si hay varios núcleos, a la vez (paralelismo). Así aprovecha mejor el procesador o atiende muchas peticiones.

El riesgo aparece al compartir datos: si dos hilos modifican lo mismo a la vez se producen carreras de datos y resultados imprevisibles. Para evitarlo se usan bloqueos (mutex), canales o lenguajes como Rust que lo comprueban al compilar.

Un ejemplo

Un servidor web atiende a cientos de visitantes a la vez: cada petición se procesa de forma concurrente.