Trebam da iskomentarisem rad dole navedenog programa,koji ima i rezultat naveden ispod,ali bas taj rezultat mi nikako ne ide u glavu....Zaista sam pocetnik i drago bi mi bilo kad bi mi iko mogao objasniti zasto je u rezultatu navedeno da se Prva nit izvrsava i dalje kad je po meni vec uspavana preko druge nitti?????
// Primer NTZ2: Napisati 2 niti tako da jedna od niti u toku svog izvrsavanja uspava
// drugu nit.
class NTZ2 extends Thread
{
NTZ2(NTZ2 n1,String ime)
{ super(ime);
n = n1;
start();
}
public void run()
{ while(signal) {if (getName().equals("prva")== true)
System.out.println("Prva nit se izvrsava!!!");
if (getName().equals("druga")== true)
System.out.println("Druga nit se izvrsava!!!");
}
}
void promeni() {signal = false;}
void uspavaj()throws InterruptedException
{ System.out.println("Uspavana je prva nit");
n.sleep(10);
System.out.println("Probudjena je prva nit");
}
public static void main(String args[]) throws InterruptedException
{ NTZ2 n1 = new NTZ2(null,"prva");
NTZ2 n2 = new NTZ2(n1,"druga");
n2.uspavaj();
n1.promeni();
n2.promeni();
}
boolean signal = true;
NTZ2 n;
}
// Rezultat:
// Upavana je prva nit
// Prva nit se izvrsava
// Prva nit se izvrsava
// Prva nit se izvrsava
// Prva nit se izvrsava
// Prva nit se izvrsava
// Prva nit se izvrsava
// Prva nit se izvrsava
// Probudjena je prva nit