Chaque cœur peut traiter un processus à la fois. (un processus étant l'état d'un programme qui tourne sur un ordinateur).
Certains processeurs ont un technologie de SMT (Simultaneous Multi Threading) qui leur permet en général de traiter deux threads en parallèle sur un même cœur (mais ce n'est pas aussi performant qu'avoir 2 cœurs, cela permet juste de maximiser le deux d'utilisations des unités de calculs de chaque cœur, avec du-coup un gain en efficacité)
Si tu as un processeur avec un seul cœur et que ton ordinateur exécute deux processus en même temps, le cœur va changer contexte plusieurs fois par seconde (pendant quelques nano secondes il va exécuter une application, puis l'autre, etc.)
Avec deux cœurs chaque cœur exécute son propre thread. Les performances sont donc meilleur dans cette situation.
Évidement avoir deux cœurs quand un seul thread est exécuté ne sert à rien, il y a un cœur qui va se tourner les pouces.
Après dans la pratique il y a sur ton ordinateur des centaines voire des milliers de thread qui fonctionnent, mais la plupart sont en attente la grande majorité du temps.