Programmazione concorrente

7
Programmazione concorrente Java

description

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 - PowerPoint PPT Presentation

Transcript of Programmazione concorrente

Page 1: Programmazione concorrente

Programmazione concorrente

Java

Page 2: Programmazione concorrente

MultithreadingMultithreading

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

Page 3: Programmazione concorrente

Classe derivataIl 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

Page 4: Programmazione concorrente

Esempiopublic classe EsempioThread extends java.lang.Thread {

…public void run() {…}

}

Page 5: Programmazione concorrente

Esempio di utilizzo

public static void main(String[] args) {

EsempioThread es1 = new EsempioThread(…);

es1.start();

while(es1.isAlive);

Page 6: Programmazione concorrente

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

Page 7: Programmazione concorrente

Metodi di Threadlong 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à