Avatar billede arnejan Nybegynder
17. juni 2004 - 01:09 Der er 4 kommentarer

thread.interrupt() giver Exception

Når jeg prøver at stoppe en tråd i min applet med

interrupt() metoden . Så kommer følgende fejlmeddelese:

java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThread)

Hvorfor kan det være ?.
Avatar billede rasmusbg Nybegynder
17. juni 2004 - 10:30 #1
Det har noget at gøre med Java's sikkerhedsniveau, vil jeg skyde på.

Hvis du vil have en tråd til at stoppe midlertidigt, kan du bruge sleep() eller wait(). Sleep() får den til at pause i et antal millisekunder, som skal gives med som argument til metoden, hvorimod wait() blokerer tråden, indtil en anden tråd kalder notify() eller notifyAll().

Hvis den derimod skal stoppes helt (altså slåes ihjel), så er det langt pænere, at du bruger en boolean til at indikere, at den skal stoppe. Et eksempel kunne være:

public class t1 extends Thread {
  private boolean stop = false;
  public void run() {
    while (!stop) {
      //udfør
      if (/*en eller anden betingelse, der betyder at tråden skal stoppe*/) {
        stop = true;
      }
    }
  }
}
Avatar billede labanos Nybegynder
17. juni 2004 - 12:05 #2
Jeg bruger selv interrupt en masse forskellige steder i en applet baseret applikation. Men jeg kunne forestille mig at den tråd du forsøger at interrupte er "main" tråden der har startet appletten, hvilket giver sikkerhedsproblemer. Laver du derimod selv en tråd, og forsøger at interrupte den burde det ikke give problemer.

Hvad er det for en tråd du vil stoppe? Og måske kan du udybe situationen lidt?
Avatar billede arnejan Nybegynder
17. juni 2004 - 17:15 #3
Jeg tror det du beskriver med main tråden etc, kan have noget med sagen at gøre.

Tråden er en jeg bruger til at læse noget tcp-ip.

Kigger på det, og vender tilbage om nogen dage.

Men flere gode råd, er selvfølgelig stadig velkommen.
Avatar billede labanos Nybegynder
18. juni 2004 - 08:59 #4
Hvis du har andre sikkerhedsporblemer med applets så har sun en "nogenlunde" side om sagen:
http://java.sun.com/sfaq/
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