Ne le multi-threading d'améliorer les performances? Comment?

J'entends tout le monde parler de la façon dont le multi-threading permet d'améliorer les performances. Je ne crois pas cela, à moins qu'il y est quelque chose qui m'échappe. Si j'ai un tableau de 100 éléments et traversant, il prend 6 secondes. Quand j'ai diviser le travail entre deux threads, le processeur aurait à passer par la même quantité de travail et donc de temps, sauf qu'ils travaillent simultanément, mais à la moitié de la vitesse. Ne devrait pas multi threading le rendre encore plus lent? Puisque vous avez besoin d'instructions supplémentaires pour la division du travail?

Regardez celui-ci : stackoverflow.com/questions/2856239/...
Si vous avez 4 processeurs par exemple (ce qui est assez fréquent de nos jours, même dans les téléphones intelligents), et que votre programme n'a qu'un seul thread, il n'aura accès qu'à 25% des ressources CPU disponibles. Si vous ne disposez que d'un seul processeur, il ne fera pas une différence.
Il n'est donc pas possible pour un seul thread programme à utiliser tous les cœurs?

OriginalL'auteur Valentin | 2013-03-08