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