È corretto dire che i thread sono stati inventati per consentire ai programmatori di esporre i processi interni allo scheduler del sistema operativo?
Un tradizionale non-threaded è in realtà un programma con 1 thread.
Ora capiamo che, in alcuni sistemi operativi, l'elaborazione in parallelo si ottiene eseguendo più istanze di un programma. Non diresti che sta esponendo i processi interni al sistema operativo, ma sta facendo esattamente la stessa cosa che fa un programma multi-thread (cioè uno con supporto OS per più thread interni).
Tutto ciò che fa un programma "threaded" è consentire l'esecuzione di più punti di esecuzione utilizzando la stessa istanza del programma, invece di avviare un processo completamente nuovo (con tutta la memoria associata e sicurezza e altro supporto del sistema operativo) riutilizzare i thread le stesse cose che ha un singolo processo.
Quindi, sono stati inventati dei thread per rendere più efficiente l'elaborazione parallela. (YMMV con alcuni sistemi operativi in cui un processo è piuttosto leggero in primo luogo)
Leggi altre domande sui tag multithreading