Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

program sa nitima

[es] :: Java :: program sa nitima

[ Pregleda: 4145 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vanja13

Član broj: 144991
Poruke: 5
*.teol.net.



Profil

icon program sa nitima03.12.2008. u 11:35 - pre 186 meseci
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
 
Odgovor na temu

Astral Projection

Član broj: 36254
Poruke: 714



+4 Profil

icon Re: program sa nitima03.12.2008. u 12:11 - pre 186 meseci
//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)
:(){ :|:& };:
Peace, Love, Unity, Respect!
 
Odgovor na temu

vanja13

Član broj: 144991
Poruke: 5
*.teol.net.



Profil

icon Re: program sa nitima03.12.2008. u 12:55 - pre 186 meseci
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...
 
Odgovor na temu

vanja13

Član broj: 144991
Poruke: 5
*.teol.net.



Profil

icon Re: program sa nitima03.12.2008. u 14:46 - pre 186 meseci
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....
 
Odgovor na temu

vanja13

Član broj: 144991
Poruke: 5
*.teol.net.



Profil

icon Re: program sa nitima03.12.2008. u 14:47 - pre 186 meseci
Internet je zakon....
da ne mislite da sam se zezala,nisam ovo do sad znala...
 
Odgovor na temu

[es] :: Java :: program sa nitima

[ Pregleda: 4145 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.