La concurrencia permite que una unidad central de procesamiento (CPU) ejecute varias tareas simultáneamente durante un determinado periodo de tiempo. Estas tareas o procesos no dependen unos de otros. La concurrencia facilita la transición rápida entre diferentes aplicaciones en un ordenador, por ejemplo; parece que diferentes procesos se están ejecutando exactamente al mismo tiempo. Pero, en cambio, la CPU está cambiando rápidamente entre hilos, que son pequeños segmentos de procesos informáticos. Técnicamente, una CPU sólo puede ejecutar un hilo a la vez, pero la concurrencia le permite alternar entre las tareas para que parezca que se ejecutan simultáneamente. Esto se llama multihilo.
La concurrencia permite que los programas informáticos se ejecuten correctamente ejecutando diferentes tareas en una CPU durante el mismo periodo de tiempo general, pero estas tareas no dependen unas de otras, ni son paralelas. En cambio, el paralelismo ejecuta las tareas completamente al mismo tiempo, en lugar de moverse rápidamente entre ellas. Una de las ventajas de la tecnología multinúcleo es que permite que una sola CPU realice el procesamiento en paralelo.
La concurrencia proporciona a un ordenador con una sola CPU más flexibilidad al permitirle decidir cuándo y durante cuánto tiempo trabajar en las tareas. La concurrencia también difiere de los procesos secuenciales o de la programación: los procesos secuenciales se completan de uno en uno, mientras que los concurrentes no tienen que completarse antes de que comience otro: pueden dividirse de la forma que resulte más eficaz.
La concurrencia puede aplicarse a los sistemas informáticos y a los lenguajes de programación. Entre los lenguajes de programación que utilizan la concurrencia se encuentran Java, Python, Rust y Go.