Novo

Forum kao aplikacija na telefonu

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

  • 1 odgovor
  • 1.795 pregleda

Najnovija ↓

Java - Niti (interrupted metoda) 09.10.2011. u 14:52 · pre 183 meseca #1
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!
Re: Java - Niti (interrupted metoda) 21.10.2011. u 15:56 · pre 183 meseca #2
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().
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme