70 likes | 296 Views
Programmazione concorrente. Java. Multithreading. Multithreading flussi di esecuzione parallela all’interno di un unico processo In Java un thread è un metodo che viene eseguito contemporaneamente ad altri
E N D
Multithreading • Multithreading • flussi di esecuzione parallela all’interno di un unico processo • In Java un thread è un metodo che viene eseguito contemporaneamente ad altri • La gestione dei thread java è totalmente indipendente dal sistema operativo ospite
Classe derivata • Il metodo più semplice per creare un thread è quello di definire una classe derivata dalla classe java.lang.Thread • La classe deve ridefinire il metodopublicvoidrun() • La classe Thread ha un metodo start() che richiama implicitamente il metodo run • Il metodo start() non ha parametri quindi gli eventuali parametri devono essere gestiti tramite il costruttore
Esempio public classe EsempioThreadextendsjava.lang.Thread { … public voidrun() { … } }
Esempio di utilizzo public staticvoidmain(String[] args) { … EsempioThread es1 = new EsempioThread(…); es1.start(); while(es1.isAlive);
isAlive() • Il metodo isAlive() restituisce true se il thread è ancora in esecuzione • In alternativa al metodo isAlive si può utilizzare il metodo join che attende il completamente del thread
Metodi di Thread • long getid() restituisce l’identificatore del thread • voidsetName(String nome) setta il nome • StringgetName() restituisce il nome • void interrupt() interrompe il thread • voidsetPriority(intp) stabilisce la priorità