luxorl
28-11-2006, 10:34
Ciao, ho cominciato a studiare per l'esame di sistemi operativi e sulle dispense dell'esercitatore del corso c'è un programmino che dovrebbe dimostrare come fermare un Thread ciclico con Interrupted()... Io l'ho provato questo programma, e sembra proprio non funzionare... il Clock continua a stampare secondi! Vedete se capite dove sta il problema please!
import poo.inout.*; //piccolo package per usare Console.readString()
class Clock extends Thread{
public void run(){
int i=1;
while(!isInterrupted()){
try{
sleep(1000);
}catch(InterruptedException e){
break;
}
System.out.println(i);
i++;
}
}
}
class ClockController extends Thread{
private Clock c;
public ClockController(Clock c){
this.c=c;
}
public void run(){
Console.readString("PRESS ENTER TO START"); //Resta in attesa di INVIO
c.start();
Console.readString("PRESS ENTER TO STOP");
c.interrupted();
}
}
public class ClockTest{
public static void main(String args[]){
Clock c=new Clock();
ClockController cc=new ClockController(c);
cc.start();
}
}
:mano:
import poo.inout.*; //piccolo package per usare Console.readString()
class Clock extends Thread{
public void run(){
int i=1;
while(!isInterrupted()){
try{
sleep(1000);
}catch(InterruptedException e){
break;
}
System.out.println(i);
i++;
}
}
}
class ClockController extends Thread{
private Clock c;
public ClockController(Clock c){
this.c=c;
}
public void run(){
Console.readString("PRESS ENTER TO START"); //Resta in attesa di INVIO
c.start();
Console.readString("PRESS ENTER TO STOP");
c.interrupted();
}
}
public class ClockTest{
public static void main(String args[]){
Clock c=new Clock();
ClockController cc=new ClockController(c);
cc.start();
}
}
:mano: