Avatar billede jespersahner Nybegynder
25. februar 2007 - 14:14 Der er 3 kommentarer og
1 løsning

Stoppe tråd med throw Exception()

Når man ønsker at stoppe en tråd, vil man typisk oprette et flag, som man så periodevis kan spørge på. Hvis tråden udfører et omfattende stykke arbejde med en masse statements, kan det nemt blive en del forespørgsler:

public void run() {
    statement1;
    if (flag) then return;
    statement2;
    if (flag) then return;
    ...
}

Mit spm. er nu: Er det muligt at lave en slags "Trojansk hest" (i form af en anden tråd) i run()-blokken, som kan udløse en Exception, altså noget med:

public void run() {
    try {
        //start "Trojansk hest"-tråd og vent på Exception
        statement1;
        statement2;
        ...
    } catch (Exception e) {
        // ryd op og returner
    }
}
Avatar billede jakoba Nybegynder
26. februar 2007 - 09:57 #1
Nej.

Det du ønsker er i modstrid med filosofien bag exceptions. Exceptions forplanter sig ned igennem en sekvens af metodekald, de kan ikke 'kastes' ind i en anden tråd.

Læs beskrivelsen af den deprecated Thread.stop() metode her: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Thread.html

mvh JakobA
Avatar billede arne_v Ekspert
22. april 2007 - 03:17 #2
I nogle tilfælde bruger man Thread interrupt og catch InterruptedException.
Avatar billede jespersahner Nybegynder
25. april 2007 - 23:41 #3
->jakoba: Du har ret, det er i bedste fald noget vrøvl jeg skriver :-)

Smid gerne et svar.
Avatar billede jakoba Nybegynder
02. maj 2007 - 22:31 #4
ok.

men ligner arnes Thread.interrupt()
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Thread.html#interrupt()
ikke noget der kunne være en løsning på dit problem ?

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester