Je suis en total désaccord avec @kyoryu l'affirmation que le nombre idéal est un thread par CPU.
Pensez-y de cette façon: pourquoi avons-nous du multi-processing systèmes d'exploitation? Pour la plupart de l'histoire de l'informatique, près de tous les ordinateurs avaient une CPU. Pourtant, depuis les années 1960, tous les "vrais" ordinateurs avaient multi-processing (aka multi-tâches) des systèmes d'exploitation.
Vous exécutez plusieurs programmes de manière à ce que l'on peut exécuter tandis que d'autres sont bloqués pour des choses comme les IO.
permet de mettre de côté les arguments quant à savoir si les versions de Windows NT avant ont été multi-tâches. Depuis, tous les OS avaient multi-tâches. Certains ne l'exposez pas à des utilisateurs, mais il est là de toute façon, en faisant des choses comme l'écoute du téléphone portable de radio, parlent de la puce GPS, l'acceptation de la souris, etc.
Les Threads sont juste des tâches qui sont un peu plus efficaces. Il n'y a pas de différence fondamentale entre une tâche, un processus et thread.
Un PROCESSEUR est une chose terrible à gaspiller, donc beaucoup de choses prêt à l'utiliser quand vous le pouvez.
Je suis d'accord qu'avec la plupart des langages procéduraux, C, C++, Java, etc, écrit bon thread-safe code est beaucoup de travail. Avec 6-core, les Processeurs sur le marché aujourd'hui, et 16 Processeurs core non loin de là, je pense que les gens vont se déplacer loin de ces langues anciennes, comme le multi-threading est de plus en plus une exigence essentielle.
Désaccord avec @kyoryu est juste mon humble avis, le reste est fait.