Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 5.568 pregleda

Najnovija ↓

program sa nitima 03.12.2008. u 12:35 · pre 218 meseci #1
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
Re: program sa nitima 03.12.2008. u 13:11 · pre 218 meseci #2
//ovo je rezultat kod mene:
Code:
Prva nit se izvrsava!!!
* ovo je pocelo da se izvršava kad si inicijalizovao objekat n1 (start() u konstruktoru)
(..............)
Code:
Druga nit se izvrsava!!!
* i ovo ti je počelo kad si inicijlizovao drugu nit (n2)
(..............)
Code:
Uspavana je je prva nit
* ovdje si pozvao n2.uspavaj(), i nit ti spava 10 milisekundi ovdje treba da piše da se uspavala druga nit nego si ti naveo da println izbaca uvijek ovaj tekst. Prva nastavlja da se izvršava:
Code:
Prva nit se izvrsava!!!
* prva nit u međuvremenu nastavlja da se izvršava
(..........)
Code:
Druga nit se izvrsava!!!
* druga nit se probudila i počela da se izvšava...
(........)
Code:
Probudjena je nit druga
* na kraju nekad piše ovo nekad piše da je prva nit nastavila da se izvršava posle ovoga.. pročitaj malo o sinhronizaciji (ključna riječ synchronized)
Potpis
:(){ :|:& };:
ॐ Peace, Love, Unity, Respect! ॐ
Re: program sa nitima 03.12.2008. u 13:55 · pre 218 meseci #3
Nisam ja pisala kod vec sam dobila da ga objasnim.Kad pozovem n2.uspavaj ta metoda meni ne poziva metod za n2.sleep() vec n2.n.sleep();a n kod n2 niti je n1,tako da mi nije bas jasno kako se to uspava druga nit......Pri pokretanju zadatka ja ne dobijam bas ovaj rezultat pa mi nije onda nista jasno...
Re: program sa nitima 03.12.2008. u 15:46 · pre 218 meseci #4
E sad da odgovorim sama na svoje postavljeno pitanje....
Thread.sleep() je static metod on ce uspavati nit koja se tada bude izvrsavala,bez obzira koja nit ga bude pozvala....
Re: program sa nitima 03.12.2008. u 15:47 · pre 218 meseci #5
Internet je zakon....
da ne mislite da sam se zezala,nisam ovo do sad znala...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme