Che cos'è il multithreading?
Nel mondo dell'informatica, il multithreading ha il compito di creare un nuovo thread di esecuzione all'interno di un processo esistente anziché avviare un nuovo processo per avviare una funzione. In sostanza, il compito del multithreading è inteso a fare un uso più saggio delle risorse del computer consentendo alle risorse che sono già in uso di essere utilizzate contemporaneamente da una leggera variante dello stesso processo. Il concetto di base del multithreading è in circolazione da qualche tempo, ma ha acquisito maggiore attenzione quando i computer sono diventati più comuni durante il decennio degli anni '90.
Questa forma di multiplexing a divisione temporale crea un ambiente in cui un programma è configurato per consentire ai processi di fork o dividere in due o più thread di esecuzione. L'esecuzione parallela di thread all'interno dello stesso programma è spesso propagandata come un uso più efficiente delle risorse del sistema informatico, in particolare con i sistemi desktop e laptop. Consentendo a un programma di gestire più attività con un modello multithreading, il sistema non deve consentire a due programmi separati di avviare due processi separati e di utilizzare gli stessi file contemporaneamente.
Mentre ci sono molti sostenitori del multithreading, ci sono anche quelli che comprendono il processo come potenzialmente dannoso per il compito dell'informatica. Il tempo necessario per consentire a un fork o thread di separarsi da un processo in esecuzione è pensato da alcuni per creare circostanze in cui potrebbero esserci dei conflitti tra i thread quando si tenta di condividere cache o altre risorse hardware. Esiste inoltre la preoccupazione che l'azione del multithreading possa ridurre i tempi di risposta di ogni singolo thread nel processo, annullando efficacemente qualsiasi risparmio di tempo generato dalla configurazione.
Tuttavia, il multithreading rimane una delle opzioni praticabili nel multitasking informatico. Non è insolito che un processore consenta sia il multithreading sia la creazione di nuovi processi per gestire varie attività. Ciò consente all'utente finale tutti i vantaggi del cambio di contesto pur facendo il miglior uso possibile delle risorse disponibili.