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à