tl; dr: sono chiamati thread perché "thread" è una metafora adatta.
Quando si avvia un thread, si fa affidamento sul sistema operativo per allocare i tempi di elaborazione in modo che il thread possa essere eseguito. Durante l'esecuzione del thread, il processore (o core) sta ponendo tutta la sua attenzione sul thread. Quando il sistema operativo cambia il core in un thread diverso, il thread smette di essere eseguito mentre l'altro thread è in manutenzione.
Quindi l'esecuzione salta dappertutto. Ma l'integrità dell'insieme delle istruzioni della macchina rimane intatta, nonostante questi salti, perché costruiamo recinzioni e meccanismi di concorrenza per proteggere il suo stato e lo stato degli oggetti con cui interagisce.
Quindi il thread si riferisce non all'esecuzione delle istruzioni in un particolare thread, ma alle istruzioni che verranno eventualmente eseguite all'interno del thread che abbiamo creato. Ogni thread, in altre parole, può essere pensato come una singola macchina o agente (li chiamiamo processi leggeri), senza dover pensare a tutti i cambi di contesto che il sistema operativo sta eseguendo per dare l'impressione che siano tutti eseguendo contemporaneamente.
In altre parole, nonostante tutto il salto che il sistema operativo fa dietro le quinte, ciò che chiamiamo thread (la sequenza di operazioni che stiamo eseguendo in un processo leggero) può ancora essere considerato come la stessa sequenza di operazioni, se non avessimo generato il thread, supponendo di aver preso le necessarie protezioni per la concorrenza.
Se questa descrizione sembra troppo pesante e astratta, allora pensa a una discussione in un forum, come Reddit. Puoi ramificare nuove discussioni; ogni discussione è il suo filo conduttore. Puoi saltare avanti e indietro tra i thread. Ma ogni thread mantiene ancora la sua integrità strutturale come una conversazione individuale.