Esercizio 1

Scrivere un programma che crea un thread come estensione della classe thread e lo lancia.

Il thread scrive tre volte sullo standard output “thread”

Il main scrive tre volte sullo standard output “main”

public class BasicThread extends Thread{
	public void run(){
		for(int i=0;i<3;i++){
			System.out.println("Thread");
		}
	}
	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
		BasicThread t=new BasicThread();
		t.start();
//		Thread.sleep(1);
		for(int i=0;i<3;i++){
			System.out.println("Main");
		}
	}
}

Esercizio 2

Scrivere un programm che crea un thread passando al costruttore di thread una apposita istanza di runnable.

Il thread scrive tre volte sullo standard output “thread”

Il main scrive tre volte sullo standard output “main”.

public class BasicThread implements Runnable{

	public void run(){
		for(int i=0;i<3;i++){
			System.out.println("Thread");
		}
	}
	public static void main(String[] args) throws InterruptedException {
		BasicThread r=new BasicThread();
		new Thread(r).start();
		Thread.sleep(1);
		for(int i=0;i<3;i++){
			System.out.println("Main");
		}
	}

}

Esercizio 3

Scrivere un programma che:

Il thread scrive tre volte sullo standard output il proprio nome (che è uguale alla string passatagli all’atto della creazione)

Il main scrive tre volte sullo standard output “main”

public class BasicThread extends Thread{

	BasicThread(String name){
		super(name);
	}
	public void run(){
		for(int i=0;i<3;i++){
			System.out.println(this.getName());
		}
	}
	public static void main(String[] args) throws InterruptedException {
		BasicThread t=new BasicThread("my thread");
		t.start();
//		Thread.sleep(1);
		for(int i=0;i<3;i++){
			System.out.println("Main");
		}
	}
}

Esercizio 4

Scrivere un programma che definisce un nuovo thread passandogli un nome (come stringa) e un’apposita istanza di runnable.

Il thead scrive tre volte sullo standard output il proprio nome (che è uguale alla string passatagli all’atto della creazione).