Filo

1) In Internet, nei newsgroup Usenet e forum simili, un thread è una sequenza di risposte a un messaggio iniziale pubblicato. Ciò consente di seguire o partecipare a una discussione individuale in un newsgroup tra i tanti che potrebbero essere presenti. Un thread viene solitamente mostrato graficamente come un messaggio iniziale e i messaggi successivi "appesi" al messaggio originale. Come utente di un newsgroup, contribuisci a un thread specificando un argomento "Riferimento" come parte del tuo messaggio.

2) Nella programmazione di computer, un thread è un'informazione segnaposto associata a un singolo utilizzo di un programma in grado di gestire più utenti simultanei. Dal punto di vista del programma, un thread è l'informazione necessaria per servire un singolo utente o una particolare richiesta di servizio. Se più utenti utilizzano il programma o si verificano richieste simultanee da altri programmi, viene creato e gestito un thread per ciascuno di essi. Il thread consente a un programma di sapere quale utente viene servito poiché il programma viene alternativamente reinserito per conto di diversi utenti. (Le informazioni sul thread unidirezionali vengono conservate memorizzandole in un'area dati speciale e inserendo l'indirizzo di tale area dati in un file registro. Il sistema operativo salva sempre il contenuto del registro quando il programma viene interrotto e lo ripristina quando dà di nuovo il controllo al programma.)

Un thread e un'attività sono simili e sono spesso confusi. La maggior parte dei computer può eseguire solo un'istruzione di programma alla volta, ma poiché funzionano così velocemente, sembrano eseguire molti programmi e servire molti utenti contemporaneamente. Il sistema operativo del computer assegna a ciascun programma un "turno" di esecuzione, quindi richiede che attenda mentre un altro programma ottiene un turno. Ciascuno di questi programmi è visto dal sistema operativo come un'attività per la quale vengono identificate e tenute traccia di determinate risorse. Il sistema operativo gestisce ogni programma applicativo nel sistema PC (foglio di calcolo, elaboratore di testi, browser Web) come un'attività separata e consente di esaminare e controllare gli elementi in un elenco di attività. Se il programma avvia una richiesta di I / O, come la lettura di un file o la scrittura su una stampante, crea un thread. I dati conservati come parte di un thread consentono a un programma di essere reinserito nel posto giusto al termine dell'operazione di I / O. Nel frattempo, altri usi simultanei del programma vengono mantenuti su altri thread. La maggior parte dei sistemi operativi odierni fornisce supporto sia per il multitasking che per il multithreading. Consentono inoltre il multithreading all'interno dei processi del programma in modo che al sistema venga risparmiato il sovraccarico della creazione di un nuovo processo per ogni thread.

La specifica POSIX.4a C fornisce una serie di interfacce del programma applicativo che consentono a un programmatore di includere il supporto dei thread nel programma. Strumenti di sviluppo del programma di livello superiore, sottosistemi applicativi e middleware offrono anche funzionalità di gestione dei thread. I linguaggi che supportano la programmazione orientata agli oggetti inoltre consentono e incoraggiano il multithreading in diversi modi. Java supporta il multithreading includendo i modificatori di sincronizzazione nella sintassi del linguaggio, fornendo classi sviluppate per il multithreading che possono essere ereditate da altre classi e eseguendo la "garbage collection" in background (recupero di aree di dati che non vengono più utilizzate) per più thread.