Java/Multithreading: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
... |
Nessun oggetto della modifica |
||
Riga 1:
{{java/Seconda parte}}
== Introduzione ==
Sorge spesso l'esigenza di fare eseguire al programma più operazioni in parallelo, ossia contemporaneamente. Per esempio si potrebbe voler salvare sul disco un flusso di dati ricevuti da internet mentre si inviano altri dati a un'altra macchina o si gestisce un' interfaccia grafica.
Poiché il linguaggio, per quanto abbiamo visto finora, viene eseguito una sola istruzione alla volta in maniera lineare, è necessario introdurre una nuova struttura che permetta di "sdoppiare" il flusso di esecuzione del programma per compiere più operazioni simultaneamente. Questa struttura è il '''thread'''.
Line 37 ⟶ 39:
Il risultato sarà una produzione continua di messaggi "sono il thread" e "sono il chiamante", che si alterneranno man mano che il sistema operativo e la macchina virtuale alterneranno l'esecuzione tra i thread.
== Sincronizzazione ==
Il fatto che i thread siano eseguiti in simultanea dà origine a un nuovo tipo di problema, detto ''di concorrenza'': cosa accade se un thread modifica un valore di una variabile mentre un altro lo richiede?
|