Salut,
Pour éclaircir un peu :
Un thread est un fil d'exécution de programme. Tu dis être électronicien, on va alors utiliser une métaphore qui te parlera...
Imagine un circuit sur lequel tu avais un seul fil. Tu ne pouvais envoyer qu'un seul signal à la fois (mono-cœur).
Imagine que plutôt que d'accélérer la cadence d'envoi du signal (car le matériel a des limites), tu décides d'ajouter un second fil (multi-cœur).
On peut alors envoyer deux signaux en même temps, mais côté "envoi du signal" il faut encore être capable de gérer ces deux fils.
Si tu mets juste deux fils sans changer le composant qui envoie le signal (le logiciel), bah celui-ci n'utilisera toujours qu'un fil (un thread).
Par contre tu peux mettre deux composants (deux logiciels mono-thread) qui travaillent en parallèle.
Et si un jour tu améliores le composant pour qu'il envoie sur deux fils (développement du logiciel multi-threadé), il ira jusqu'à deux fois plus vite (modulo des pertes en amont, répartition des données etc, enfin bon comme partout ce n'est pas parce qu'on double les ressources que ça double la vitesse).
Ce que je ne comprend pas sur une architecture ou 1 processeur = 64bits = "2 cpu" pourquoi la solicitation des cpu ne se fait pas par paire 32bits+32bits = 64bits de données comme est sensé être ubuntu 64bits.
Il n'y a pas de « 32 bits + 32 bits ».
Les processeurs actuels sont 64 bits, point.
1 processeur = 64 bits = 1 cœur.
1 processeur multi-core = 64 bits multi-core = 2 cœurs ou plus.
1 processeur multi-core multi-thread = 64 bits multi-core multi-thread = 2 × 2 cœurs ou plus.
La largeur du bus d'un processeur n'est pas divisée, ni par le nombre de cœurs ni par le nombre de threads.
Un processeur à 2 cœurs (ou 4 cœurs), c'est réellement comme s'il y avait 2 processeurs (ou 4 processeurs), mais sur un seul "die".
Un processeur à 2 threads (il n'y a plus de 2 threads) inclut quelques éléments qui font qu'il est vu comme 2 cœurs, ça va un chouïa plus vite qu'un seul cœur sans hyper-threading, mais sans être exceptionnel.