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 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 metodo public void run() 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 EsempioThread extends java.lang.Thread { … public void run() { … } } Esempio di utilizzo public static void main(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 void setName(String nome) setta il nome String getName() restituisce il nome void interrupt() interrompe il thread void setPriority(int p) stabilisce la priorità