Pagina iniziale | Navigazione |
Google

Multithreading

Questo articolo è uno stub, il che vuol dire che necessita di essere ampliato e corretto, secondo i canoni di Wikipedia. Se puoi, rendi anche questo articolo serio e dettagliato come dev'essere un articolo di enciclopedia, grazie.

In informatica, il multithreading è una tecnica che permette di avere più copie contemporanee (thread) di uno stesso programma in esecuzione, su CPU differenti o sulla stessa.

I thread multipli hanno origine dalla stessa immagine eseguibile. In pratica, l'inizio di un thread è la creazione di un nuovo processo usando lo stesso codice di un altro, già presente in memoria. Tutti i thread di un dato programma condividono il codice eseguibile e i dati globali. Ognuno di essi ha invece una copia distinta dei dati locali, come le variabili allocate sullo stack e la memoria allocata dinamicamente.

Il multithreading permette di suddividere il lavoro a più processori in modo efficiente, ma introduce una notevole complessità che può essere spesso difficile da gestire. Il problema maggiore è la sincronizzazione tra i vari thread: spesso un thread ha bisogno dei risultati di un altro, oppure deve sovrascrivere i dati di un altro ma non prima di un dato momento. Tali problemi danno spesso origine a loop infiniti o a deadlock, a volte di difficile soluzione. Alcuni concetti come il mutex sono stati sviluppati appositamente per sincronizzare thread diversi.


GNU Fdl - it.Wikipedia.org




Google | 

Enciclopedia |  La Divina Commedia di Dante |  Mappa | : A |  B |  C |  D |  E |  F |  G |  H |  I |  J |  K |  L |  M |  N |  O |  P |  Q |  R |  S |  T |  U |  V |  W |  X |  Y |  Z |