Sei que essa pergunta é bastante antiga, mas as coisas evoluíram desde 2009.
Há duas coisas a serem consideradas agora: o número de núcleos e o número de threads que podem ser executados em cada núcleo.
Nos processadores Intel, o número de threads é definido pelo Hyperthreading, que é apenas 2 (quando disponível). Mas o Hyperthreading reduz o tempo de execução em dois, mesmo quando não estiver usando 2 threads! (ou seja, 1 pipeline compartilhado entre dois processos - isso é bom quando você tem mais processos, e não é tão bom assim. Mais núcleos são definitivamente melhores!)
Em outros processadores, você pode ter 2, 4 ou até 8 threads. Portanto, se você tiver 8 núcleos, cada um deles suportando 8 threads, poderá ter 64 processos em execução em paralelo sem alternância de contexto.
"Nenhuma troca de contexto" obviamente não é verdadeira se você executar com um sistema operacional padrão que fará a troca de contexto para todos os tipos de outras coisas fora de seu controle. Mas essa é a ideia principal. Alguns sistemas operacionais permitem alocar processadores para que apenas seu aplicativo tenha acesso / uso do referido processador!
Pela minha própria experiência, se você possui muitas E / S, vários threads são bons. Se você tiver um trabalho intensivo em memória muito pesada (fonte de leitura 1, fonte de leitura 2, computação rápida, gravação), ter mais threads não ajuda. Novamente, isso depende da quantidade de dados que você lê / grava simultaneamente (ou seja, se você usa o SSE 4.2 e lê valores de 256 bits, que interrompe todos os threads em sua etapa ... em outras palavras, 1 thread é provavelmente muito mais fácil de implementar e provavelmente mais rápido, se não realmente mais rápido.Isso dependerá da sua arquitetura de processo e memória, alguns servidores avançados gerenciam intervalos de memória separados para núcleos separados, para que threads separados sejam mais rápidos, pressupondo que seus dados sejam arquivados corretamente ... e é por isso que, em alguns arquiteturas, 4 processos serão executados mais rapidamente que 1 processo com 4 threads.)