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

Java - Niti (interrupted metoda)

[es] :: Java :: Java - Niti (interrupted metoda)

[ Pregleda: 1321 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jelenadjor
Beograd

Član broj: 291685
Poruke: 1
*.adsl-a-7.sezampro.rs.



Profil

icon Java - Niti (interrupted metoda)09.10.2011. u 13:52 - pre 151 meseci
Zdravo svima,

Pocela sam da ucim niti i naisla sam na sledeci problem.

Program izgleda ovako

package Niti;

public class NT5a extends Thread {
boolean signal;

NT5a(){
signal=true;
start();
}

public void run(){
InterruptKojiPrekidaNeuspavanuNit();
System.out.println("Prekinuta nit.");
}

public void InterruptKojiPrekidaNeuspavanuNit(){
//while(!isInterrupted()&&signal){}
while(!interrupted()&&signal){

}
System.out.println("Status prekida: "+ isInterrupted());
}
public static void main(String[] args)throws Exception{
NT5a nn=new NT5a();
nn.interrupt();
}
}

Prrogram radi dobro, nakon sto se pokrene run metoda niti nn, interrupt metoda prekine while petlju i zavrsi rad metode InterruptKojiPrekidaNeuspavanuNit, a time i rad run metode.

Medjutim, buni me kako radi program u debug modu. Prvo postavim breakpoint na nn.interrupt(); a onda na while(!interrupted()&&signal){ !interrupted()&&signal vraca true, a izadje iz while petlje. Nije mi jasno zasto?

Hvala na pomoci!
 
Odgovor na temu

Deki11

Član broj: 30656
Poruke: 31
*.dynamic.sbb.rs.



+7 Profil

icon Re: Java - Niti (interrupted metoda)21.10.2011. u 14:56 - pre 151 meseci
U debageru (konkretno, u NetBeansu koji koristim) ima spisak pokrenutih niti, i desnim klikom na neku od njih aktivirate je, i onda možete da je korak-po-korak izvršavate, nezavisno od drugih niti.

U ovom konkretnom primeru su 2 tačke prekida u različitim nitima. Kad se zaustavi kod nn.interrupt(), ti onda, umesto da nastaviš. prebaci se na drugu nit (gore opisanim postupkom), pa nju izvršavaj korak po korak, i videćeš da su rezultati sada drugačiji. Ova petlja će se vrteti sve dok se ponovo ne vratiš na prvu nit i dozvoliš da se izvrši nn.interrupt().
 
Odgovor na temu

[es] :: Java :: Java - Niti (interrupted metoda)

[ Pregleda: 1321 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

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