Saya tahu pertanyaan ini agak lama, tetapi banyak hal telah berkembang sejak 2009.
Ada dua hal yang perlu diperhatikan sekarang: jumlah inti, dan jumlah utas yang dapat berjalan dalam setiap inti.
Dengan prosesor Intel, jumlah utas ditentukan oleh Hyperthreading yang hanya 2 (jika tersedia). Tapi Hyperthreading memangkas waktu eksekusi Anda menjadi dua, bahkan ketika tidak menggunakan 2 utas! (yaitu 1 pipa dibagi antara dua proses - ini bagus ketika Anda memiliki lebih banyak proses, tidak begitu baik sebaliknya. Lebih banyak core secara definitif lebih baik!)
Pada prosesor lain, Anda mungkin memiliki 2, 4, atau bahkan 8 utas. Jadi, jika Anda memiliki 8 core yang masing-masing mendukung 8 thread, Anda bisa membuat 64 proses berjalan secara paralel tanpa pengalihan konteks.
"Tanpa pengalihan konteks" jelas tidak benar jika Anda menjalankan dengan sistem operasi standar yang akan melakukan pengalihan konteks untuk semua hal lain di luar kendali Anda. Tapi itu ide utamanya. Beberapa OS memungkinkan Anda mengalokasikan prosesor sehingga hanya aplikasi Anda yang memiliki akses / penggunaan prosesor tersebut!
Dari pengalaman saya sendiri, jika Anda memiliki banyak I / O, banyak utas baik. Jika Anda memiliki pekerjaan yang sangat berat memori (baca sumber 1, baca sumber 2, perhitungan cepat, tulis) maka memiliki lebih banyak utas tidak membantu. Sekali lagi, ini tergantung pada seberapa banyak data yang Anda baca / tulis secara bersamaan (yaitu jika Anda menggunakan SSE 4.2 dan membaca nilai 256 bit, yang menghentikan semua utas dalam langkah mereka ... dengan kata lain, 1 utas mungkin jauh lebih mudah untuk diterapkan dan mungkin hampir secepat jika tidak benar-benar lebih cepat. Ini akan tergantung pada proses & arsitektur memori Anda, beberapa server canggih mengelola rentang memori yang terpisah untuk core terpisah sehingga utas terpisah akan lebih cepat dengan asumsi data Anda diajukan dengan benar ... itulah sebabnya, pada beberapa arsitektur, 4 proses akan berjalan lebih cepat dari 1 proses dengan 4 utas.)