THREAD in Java import java.io.*; class principale { public static void main (String param[]) { proc1 tp1=new proc1(1000); Thread p1=new Thread(tp1); proc2 tp2=new proc2(); Thread p2=new Thread(tp2); proc1 tp3=new proc1(3000); Thread p3=new Thread(tp3); p1.start(); // il metodo start, ereditato dalla classe Threads, fa p2.start(); // partire il thread; in pratica la JVM chiama il metodo p3.start(); // run() dell'oggetto thread indicato } } class proc1 implements Runnable { long count; public proc1(long partida) //costruttore { count=partida; } public void run() //equivale a un main { while(true) { System.out.println(Thread.currentThread().getName()+" di classe proc1: "+count); count++; } } } class proc2 implements Runnable { //non viene specificato un costruttore public void run() //equivale a un main { while(true) System.out.println(Thread.currentThread().getName()+" di classe proc2"); } } Thread-0 Thread-2 Thread-1 Thread-2 Thread-0 Thread-2 Thread-1 Thread-2 Thread-0 Thread-2 Thread-1 Thread-2 Thread-2 Thread-2 Thread-2 Thread-2 Thread-2 di di di di di di di di di di di di di di di di di classe classe classe classe classe classe classe classe classe classe classe classe classe classe classe classe classe proc1: proc1: proc2 proc1: proc1: proc1: proc2 proc1: proc1: proc1: proc2 proc1: proc1: proc1: proc1: proc1: proc1: 1000 3000 3001 1001 3002 3003 1002 3004 3005 3006 3007 3008 3009 3010 Thread-2 Thread-2 Thread-2 Thread-2 Thread-0 Thread-2 Thread-1 Thread-2 Thread-0 Thread-2 Thread-1 Thread-2 Thread-0 Thread-2 di di di di di di di di di di di di di di classe classe classe classe classe classe classe classe classe classe classe classe classe classe proc1: proc1: proc1: proc1: proc1: proc1: proc2 proc1: proc1: proc1: proc2 proc1: proc1: proc1: 3011 3012 3013 3014 1003 3015 3016 1004 3017 3018 1005 3019