Je sais que cette question est un peu vieux, mais les choses ont évolué depuis 2009.
Il y a deux choses à prendre en compte: le nombre de cœurs, et le nombre de threads qui peuvent s'exécuter à l'intérieur de chaque cœur.
Avec les processeurs Intel, le nombre de threads est définie par la fonction Hyperthreading, qui est à seulement 2 (lorsque disponible). Mais l'Hyperthreading réduit votre temps d'exécution par deux, même lorsque vous n'utilisez pas 2 fils! (c'est à dire 1 pipeline partagé entre deux processus -- ce est bon quand vous avez plus de processus, mais pas autrement. Plus de core est définitivement mieux!)
Sur d'autres processeurs, vous pouvez avoir 2, 4 ou même 8 threads. Donc, si vous avez 8 cœurs de chacun de soutien 8 threads, vous pourriez avoir 64 processus s'exécutant en parallèle, sans changement de contexte.
"Pas de changement de contexte" n'est évidemment pas vrai, si vous exécutez un système d'exploitation standard qui va faire le changement de contexte pour toutes sortes d'autres choses hors de votre contrôle. Mais c'est l'idée principale. (Note bien que certains Systèmes d'exploitation vous permettent d'allouer des processeurs de sorte que seul votre application a accès ou à l'utilisation dudit processeur!)
De ma propre expérience, si vous avez beaucoup d'I/O, plusieurs threads est bon. Si vous avez de très lourds de la mémoire de travail intensif (lire la source 1, lecture de la source 2, rapide calcul, écriture) puis avoir plus de threads n'aide pas. Encore une fois, cela dépend de la quantité de données en lecture/écriture simultanément (si vous utilisez de l'ESS 4.2 et lire 256 valeurs de bits, qui s'arrête tous les threads dans leur démarche... en d'autres mots, 1 thread est probablement beaucoup plus facile à mettre en œuvre et sans doute à peu près aussi rapide sinon plus rapide. Cela dépendra de votre processus de la mémoire et de l'architecture, certains serveurs d'avancées de gérer des plages de mémoire pour séparer les noyaux afin de séparer les fils sera plus rapide en supposant que vos données sont correctement classés,... c'est pourquoi, sur certaines architectures, 4 processus sera exécuté plus rapidement que 1 processus avec 4 fils.)