Programma, processo e thread

In Java, i thread creano dei flussi di esecuzione concorrente all’interno del singolo processo rappresentato dal programma in esecuzione. Si indica allora con il termine programmazione concorrente la pratica di implementare programmi contenenti più flussi di esecuzione (cioè, appunto, thread)

Thread main

In Java, ogni proramma in esecuzione è un thread. In particolare, il metodo main è associato al thread main.

Per accedere alle proprietà del thread main, è necessario ottenere un riferimnto all’oggetto corrispondente, mediante il metodo Thread.CurrentThread(). Ad esempio:

public class ThreadMain {
	public static void main(String[] args) {
		Thread t = Thread.currentThread();
		System.out.println("Thread corrente: " + t);
		t.setName("Mio Thread");
		System.out.println("Dopo cambio nome: " + t);
	}
}

L’output di questo programma è

Thread corrente: Thread[main,5,main]
Dopo cambio nome: Thread[Mio Thread,5,main]

dove Thread[nome, priorità, gruppo] indica:

  1. Il nome del thread
  2. La priorità di scheduling
  3. Il gruppo di appartenenza del thread

Classe Thread

La classe principale per la gestione dei thread in Java è java.lang.Thread:

Untitled

Estensione di Thread

Il modo più semplice per creare un thread è:

  1. Estendere la classe Thread