Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Sintesi su Thread con esempi, Schemi e mappe concettuali di Informatica

Una sintesi di tutto ciò che riguarda i thread con degli esempi

Tipologia: Schemi e mappe concettuali

2022/2023

Caricato il 07/11/2024

matteo-marchesini-4
matteo-marchesini-4 🇮🇹

5 documenti

1 / 3

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
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..
}
pf3

Anteprima parziale del testo

Scarica Sintesi su Thread con esempi e più Schemi e mappe concettuali in PDF di Informatica solo su Docsity!

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:

  1. Creare i thread (di solito inserendoli in un arraylist) ArrayList collezione= new ArrayList(); Utilizzi ciclo for normale per creare // NUMERO DI ELEMENTI CHE VOGLIO INSERIRE NELLA COLLEZIONE for(int i = 0; i < N ; i++){ collezione.add(new Prova("prova" + i)); }
  2. Avviare i thread (utilizzando un ciclo for-each, andando a sfogliare gli elementi del contenitore ) Utilizzo ciclo for in quando l’ho già creato e devo solo sfogliare tutta la collezione for (Prova thread : collezione) { thread.start(); }
  3. Attesa con sleep try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); }
  4. Blocco thread for (Prova thread : collezione) { thread.stopRunning(); } Numeri casuali ● Importo la classe random in cima al file import java.util.Random; ● Istanziamo classe Random Random random = new Random(); ● Utilizziamo l’oggetto random Per float random.nextFloat() Per int random.nextInt()