La concurrencia ocurre cuando varias actividades quieren acceder o usar un mismo recurso.
En un procesador de un solo núcleo:
Cada hilo tiene su propio contador de programa (su posición en las instrucciones que debe ejecutar).
El planificador de la CPU les da “tiempos de uso” (slices o quantums) y va cambiando de uno a otro muy rápido.
Al cambiar de hilo, se guarda el estado actual (PC, registros, pila) y se carga el del siguiente hilo.
Como el cambio es muy rápido (miles o millones de veces por segundo), parece que se ejecutan a la vez → esto es concurrencia.
Tal como dices: