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


Concetti di Base sui Thread in Java, Appunti di Informatica

Una panoramica dei concetti di base sui thread in java, spiegando cosa sono, come crearli e gestirli, come gestire le eccezioni e come sincronizzarli. Viene anche fornito un riepilogo per decidere quale approccio adottare in base alle esigenze specifiche del progetto.

Tipologia: Appunti

2023/2024

In vendita dal 04/06/2024

_LENAH_
_LENAH_ 🇮🇹

21 documenti

1 / 3

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Concetti di Base sui Thread in Java
Cos'è un Thread?
Un thread è un'unità di esecuzione indipendente all'interno di un programma. Ogni
thread ha il proprio stack di chiamate, ma condivide le risorse del processo, come la
memoria heap. I thread consentono l'esecuzione concorrente di più parti di un
programma, migliorando le prestazioni in applicazioni multi-tasking o che richiedono
tempi di risposta rapidi.
Creare un Thread: extends Thread vs implements Runnable
extends Thread
Estendere la classe Thread significa creare una sottoclasse di Thread e sovrascrivere
il metodo run. Questo approccio è semplice e diretto, ma meno flessibile perché in
Java si può estendere solo una classe. Questo è utile quando non si deve estendere
un'altra classe e si vuole una soluzione rapida.
Esempio:
java
Copia codice
public class MyThread extends Thread { @Override public void run()
{ System.out.println("Thread in esecuzione: " +
Thread.currentThread().getName()); } } public class Main { public static void
main(String[] args) { MyThread thread1 = new MyThread(); thread1.start(); } }
implements Runnable
Implementare l'interfaccia Runnable separa il codice del thread dalla gestione del
thread stesso. Questo approccio è più flessibile e favorisce una migliore progettazione
del software. È utile quando la classe deve estendere un'altra classe o si vuole una
separazione più chiara delle responsabilità.
Esempio:
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("Thread in esecuzione: " +
Thread.currentThread().getName());
}
}
public class Main {
public static void main(String[] args) {
MyThread thread1 = new MyThread();
thread1.start();
pf3

Anteprima parziale del testo

Scarica Concetti di Base sui Thread in Java e più Appunti in PDF di Informatica solo su Docsity!

Concetti di Base sui Thread in Java Cos'è un Thread? Un thread è un'unità di esecuzione indipendente all'interno di un programma. Ogni thread ha il proprio stack di chiamate, ma condivide le risorse del processo, come la memoria heap. I thread consentono l'esecuzione concorrente di più parti di un programma, migliorando le prestazioni in applicazioni multi-tasking o che richiedono tempi di risposta rapidi. Creare un Thread: extends Thread vs implements Runnable extends Thread Estendere la classe Thread significa creare una sottoclasse di Thread e sovrascrivere il metodo run. Questo approccio è semplice e diretto, ma meno flessibile perché in Java si può estendere solo una classe. Questo è utile quando non si deve estendere un'altra classe e si vuole una soluzione rapida. Esempio: java Copia codice public class MyThread extends Thread { @Override public void run() { System.out.println("Thread in esecuzione: " + Thread.currentThread().getName()); } } public class Main { public static void main(String[] args) { MyThread thread1 = new MyThread(); thread1.start(); } } implements Runnable Implementare l'interfaccia Runnable separa il codice del thread dalla gestione del thread stesso. Questo approccio è più flessibile e favorisce una migliore progettazione del software. È utile quando la classe deve estendere un'altra classe o si vuole una separazione più chiara delle responsabilità. Esempio: public class MyThread extends Thread { @Override public void run() { System.out.println("Thread in esecuzione: " + Thread.currentThread().getName()); } } public class Main { public static void main(String[] args) { MyThread thread1 = new MyThread(); thread1.start();

Thread ManagementCreazione e Avvio: Un thread è creato e avviato usando new Thread(runnable).start() per Runnable o new MyThread().start() per Thread.  Metodi Importanti:start() : Avvia il thread e chiama il metodo run().  run() : Contiene il codice che verrà eseguito nel nuovo thread.  sleep(milliseconds) : Fa sì che il thread corrente dorma per un certo periodo di tempo.  join() : Attende che il thread sul quale è chiamato termini. Gestione delle Eccezioni nei Thread I thread possono essere interrotti o bloccati durante l'esecuzione. È importante gestire correttamente le eccezioni, come InterruptedException , soprattutto quando si utilizza Thread.sleep(). Esempio di gestione delle eccezioni: public class MyRunnable implements Runnable { @Override public void run() { System.out.println("Thread in esecuzione: " + Thread.currentThread().getName()); } } public class Main { public static void main(String[] args) { Thread thread1 = new Thread(new MyRunnable()); thread1.start(); } } Sincronizzazione Quando più thread accedono alle stesse risorse condivise (ad esempio, variabili o oggetti), possono verificarsi problemi di concorrenza. La sincronizzazione è necessaria per garantire che solo un thread alla volta possa accedere alla risorsa critica. Utilizza synchronized per i blocchi o i metodi che devono essere sincronizzati.