Thread erstellen



  • Hi,
    ich möchte einen Thread erstellen, der ca 4 Sekunden wartet und dann eine Variable ändert. Die 4 Sekunden warten kann ich mit sleep(4000)? machen, aber wie erstelle ich den thread.

    Kann mir jemand helfen?

    Danke



  • class App implements Runnable {

    Thread runner;
    boolean stop = false;
    int variable = 0;

    public App() {
    runner = new Thread(this);
    runner.start();
    }

    public final void stopThread() { stop = true; }

    public final void run() {

    while (stop != true) {
    variable += 2;
    try { Thread.sleep(4000); } catch (InterruptedException e) { }
    }
    }
    }

    So, wenn du Runnable implementierst musst du die Methode run definieren. Diese Methode wird vom Threadobjekt, da du dem Konstruktor this übergibst, aufgerufen,
    wenn die Methode start() des Threads aufgerufen wird. Das mit der stop-Variable um den Thread zu stoppen sollte man machen, da die alte stop()-Methode von Thread aus bestimmten Gründen depracted ist.



  • Hi, für stopThread() gibt es in Thread schon eine Methode interrupt() die ein internes Flag setzt..in run() kann dann auf isInterrupted() getestet werden, wobei in der InterruptedException das Flag wieder entfernt wird und deswegen beim Catchen am Bestren nochmal interrupt() aufgerufen werden sollte...nur als Alternative zu der manuellen Version von Pogo 🙂



  • Ist das erst seit dem jdk1.4 so?


Anmelden zum Antworten