Posto qui di seguito la prima di una serie di guide pratiche su Java e sul Multithread che sta portando avanti un mio amico di università Dymios sul suo blog. Per ora metto solo la prima parte. Potete continuare la lettura sul suo blog.
Multithreading in Java – di Dymios
Una normale applicazione che gira sulla nostra macchina ha un solo flusso di esecuzione: si dice che ha un singolo thread attivo. Con la tecnica del multithreading è possibile creare diversi flussi di istruzioni in esecuzione per una singola applicazione. In questo modo possiamo delegare un certo compito ad un thread mentre noi nel programma principale eseguiamo qualche altra operazione. Possiamo cioè effettuare più calcoli ed operazioni in parallelo.
Java offre due possibilità per fare questo, vediamole una per volta:
1) Estendere la classe Thread
Le operazioni da eseguire in un thread vanno scritte nel metodo run() di un oggetto che estende la classe java predefinita Thread. La classe chiamante dovrà creare un oggetto di tale classe ed invocare il metodo start(). La JVM a questo punto creerà il nuovo thread e invocherà il metodo run().
public class Main { public static void main(String args[]) { MioThread t = new MioThread(); t.start(); } } public class MioThread extends Thread { public MioThread() { ...costruttore... } public void run() { System.out.println("Sono il Thread t!"); } }
2) Implementare l’interfaccia Runnable
Metodo molto simile al precedente.
public class Main { public static void main(String args[]) { MioRunnable runnable = new MioRunnable(); Thread t = new Thread(MioRunnable); t.start(); } } public class MioRunnable implements Runnable { public MioRunnable() { ...costruttore... } public void run() { System.out.println("Sono il Thread t!"); } }