Dari pengetahuan saya yang terbatas tentang sistem operasi, saya percaya bahwa setiap proses memiliki setidaknya satu utas, dan utas inilah yang dijadwalkan, bukan proses itu sendiri. Proses ini hanya menyimpan informasi tentang program dan utas yang telah ditetapkan berjalan. Dengan cara ini aplikasi berulir tunggal mendapatkan perlakuan yang sama dengan aplikasi multithreaded, tetapi aplikasi multithreaded dapat menggunakan sumber daya dengan lebih baik.
Sebagai contoh mari kita asumsikan kita memiliki dua proses dengan masing-masing dua utas dan satu aplikasi ulir, semuanya bekerja keras pada prosesor dual core (atau CPU ganda, tidak ada bedanya di sini)
Process A
|_Thread A-1
|_Thread A-2
Process B
|_Thread B-1
|_Thread B-2
Process C
|_Thread C
Setiap utas dapat dijadwalkan di semua inti CPU dan beban diseimbangkan oleh penjadwal OS.
Jika kita kemudian pergi dan mengatur afinitas prosesor untuk Proses B untuk membatasi itu ke satu CPU maka semua utas proses itu terikat ke CPU itu juga dan tidak akan berjalan pada CPU lain. Melakukan hal yang sama pada Proses C tidak akan menghasilkan perubahan nyata karena hanya dapat berjalan pada satu CPU pada satu waktu.