

Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una sintesi di tutto ciò che riguarda i thread con degli esempi
Tipologia: Schemi e mappe concettuali
1 / 3
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


Cos’è un tread Un Thread, può essere considerato, come una CPU virtuale che incapsuli al suo interno i dati e il codice di un particolare programma, come rappresentato in figura: Un Processo è un programma in esecuzione Un Thread è un processo che appartiene ad un programma o ad un altro processo. I thread condividono le risorse e codice all’interno del processo. Se vogliamo creare una classe che utilizza i thread dobbiamo estendere la classe thread Esempio la classe prova di tipo thread con l’attributo di tipo stringa nome ed un campo booleano running per controllare se il thread è in esecuzione o no public class Prova extends Thread { private String name; private boolean running; public Runner(String name) { this.name = name; this.running = True; } La funzione che svolgerà il thread una volta avviato si chiama run, andiamo ad utilizzare Override per riscriverla rispetto alla funzione che ereditiamo da thread @Override public void run() { //finchè la variabile booleana running è true cioè vera, il thread eseguirà il codice nel ciclo while while (running) { //codice } //se voglio far fermare il thread per un periodo di tempo espresso in ms, devo usare thread.sleep(ms) ed inserirlo in un blocco try catch che prima proverà ad eseguire il comando virtualmente e se da errore allora lancia l’eccezione eseguendo il codice nel catch invece se non da errori esegue il normalmente il codice nel try. try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } //può essere utile avere una funzione che interrompe un thread, utilizzando l’attributo running. public void stopRunning() { this.running = false; } //eventualmente getter e setter degli attributi privati.. }
Nel main invece andremo ad: