Elle se dédouble

T'en appelle une, y en a 8 qui se lance sur un proc 8 coeurs
Ton programme principale peu être considéré comme un thread , ses instructions seront exécuté à intervalle régulier défini par le système d'expoitation , l'os repartit son temps entre tout les programmes.
Ton programme peu avoir des threads "enfant" ils sont donc exécuté en parallèle de ton programme , le processeur va donc alloué du temps à ton programme principal , et à son thread enfants , ce qui donne l'impression d'aller plus vite, car "2x" plus de temps est attribuer à ton programme.
Un thread peu être vu comme un "univers" , tout ce qui est créer & appeler à l'intérieur de cet univers, appartient à l'univers.
Tu peu donc appeler la même procédure dans différent thread sans que cela pose problème. Le soucis va être l'accès au ressources qu'ils partage, les mutex & les sémaphore sont là pour cela.