1   public class ThreadCreation implements Runnable {

2     public ThreadCreation () {

3       Thread ct = Thread.currentThread();

4       ct.setName("Thread principale");

5       Thread t = new Thread(this, "Thread figlio");

6       System.out.println("Thread attuale: " + ct);

7       System.out.println("Thread creato: " + t);

8       t.start();

9       try {

10        Thread.sleep(3000);

11      }

12      catch (InterruptedException e) {

13        System.out.println("principale interrotto");

14      }

15      System.out.println("uscita Thread principale");

16    }

17    public void run() {

18      try {

19        for (int i = 5; i > 0; i--) {

20          System.out.println("" + i);

21          Thread.sleep(1000);

22        }

23      }

24      catch (InterruptedException e) {

25        System.out.println("Thread figlio interrotto");

26      }

27      System.out.println("uscita Thread figlio");

28    }

29    public static void main(String args[]) {

30      new ThreadCreation();

31    }

32  }