Bueno, te voy a plantear la prueba que hice una vez y los resultados que obtuve y de ahí deduces lo que quieras.
Creé una función dentro de mi aplicación que hacía 1,000 millones de sumas.
Primero lancé esa función en mi hilo principal y obtuve 2.4 segundos en tiempo de ejecución.
Después lancé esa función en un segundo hilo y la ejecuté al mismo tiempo dentro de mi hilo principal (o sea el doble de operaciones de suma) y el resultado en tiempo de ejecución fue de 2.7 segundos.
Como vez, el tiempo es casi el mismo usando dos hilos (pues mi procesador tiene dos núcleos) la diferencia es que hice el doble de operaciones por segundo.
Lo que mencionas sobre los recursos y el hecho de que el sistema operativo sea el que asigna un tiempo a cada hilo es irrelevante, pues al haber más de un núcleo siempre va estar un hilo en cada uno de los núcleos.
Ponte a pensar que si lo que dijeras es cierto, el haber inventado los procesadores con más de un núcleo no serviría de nada. Saludos y espero que los números hayan hablado. De todas formas si no me crees, has la prueba por ti mismo.
EDITADO:https://es.wikipedia.org/wiki/Hilo_de_ejecuci%C3%B3nEn el enlace anterior ve a donde dice
"Hilos a nivel de núcleo (KLT)"Aquí también, al inicio, puedes leer acerca de como funciona el cambio de hilos y lo que mencionabas sobre los recursos, y de hecho, te dicen que esto es una ventaja.
"En muchos de los sistemas operativos que dan facilidades a los hilos, es más rápido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro. Este fenómeno se debe a que los hilos comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes, no lo hacen."