java problem

  • dumme frage...


    einen thread kann man ja mit Thread.sleep(1000) in den "schlaf" schicken...
    aber wie kann ich ihn wieder "aufwecken"? Thread.interrupt() funktioniert irgendwie nicht!

  • thread.wake


    oder?


    Habs gefunden
    http://docserver.userland.com/thread/wake

    In Lyss gibts nen neuen Club ==> http://www.opposition-lyss.ch


    "Speed has never killed anyone, suddenly becoming stationary... That's what gets you. "- JEREMY CLARKSON!


    ''She said she wanted to fulfill every single one of my fantasies. I made a list. Had to type it myself. My assistant threatened to quit.'' - DENNY CRANE!

    3 Mal editiert, zuletzt von MiBfinity ()

  • wake gibt's anscheinend nicht mehr...



    EDIT: hab's geschafft! wait() mach in etwa das selbe wie sleep() nur kann man es mit notify() oder notifyAll() wieder weitermachen :)

  • sleep(long millis)
    Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds.


    quelle: http://java.sun.com/j2se/1.4.2/docs/api/


    ich denke, du musst den gar nicht wieder aufwecken. nach z.b. 1000 ms wird der thread automatisch wieder aktiviert.


    "Computer games don't affect kids, I mean if Pacman affected us as kids, we'd all run around in a darkened room munching pills and listening to repetitive music."


    Kristian Wilson

  • und wie hast du es nun gemacht?


    "Computer games don't affect kids, I mean if Pacman affected us as kids, we'd all run around in a darkened room munching pills and listening to repetitive music."


    Kristian Wilson

  • na gut... anderes java problem! gibt es eine möglichkeit festzustellen, wenn ein programm gekillt wurde? irgend ein unLoad event oder so was... es handelt sich um ein normales programm ohne GUI!


    edit: ok bisschen mehr details... es wird ein programm gestartet, welches dann 5 threads eröffnet. und ich müsste jetzt feststellen können, wenn das programm beendet wird

  • willst du wissen, wann ein bestimmter threadgeschlossen wird,
    oder wann der letzte threadgeschlossen wird, und das programm somit
    zu ende ist?


    EDIT: also eine moeglichkeit waere, du machst dir selber irgend eine methode, die
    dir mitteilt, wie auch immer dus mitgeteilt haben moechtest, das sich das programm jetzt
    beendet, packst die in einen eigenen thread, aber anstatt den zu starten, haengst du
    den deinem Runtime objekt als shutdownHook an.
    somit wird dieser thread dann gestartet, wenn sich das proggi beendet, und du kriegst
    mitgeteilt, das das programm nun am beenden ist.

    i consider myself a nerd...

    Einmal editiert, zuletzt von guru ()

  • ja wenn der letzte thread tot ist, ist das programm beendet!


    leider ist mir das, was du da interessant beschieben hast etwas kompliziert bzw. hab kein word davon verstanden!

  • Ich weiss ist ein doppelpost, aber hier noch ein bisschen code:


    EDIT: jetzt die lauffaehige version:


    public class MyProgramm {

    MyProgramm() {
    super();
    }


    public void doSomething() {
    System.out.println("Ich mach gerade irgendwas\n");

    //danach beende ich mich, weil ich fertig bin
    }


    public static void main(String[] arg) {

    MyProgramm myProgramm = new MyProgramm();
    Runtime runtime = Runtime.getRuntime();
    ShutdownMessageThread shutdownMessageThread = myProgramm.new ShutdownMessageThread();

    runtime.addShutdownHook(new Thread(shutdownMessageThread));

    myProgramm.doSomething();
    }


    private class ShutdownMessageThread implements Runnable {


    ShutdownMessageThread() {
    super();


    // oder was immer du willst


    }


    public void run() {
    System.out.println("Ich bin mich am beenden\nmit freundlichen Gruessen\nDein Programm");


    // oder teils dir sonstwie mit...


    }


    }


    }

    i consider myself a nerd...

    Einmal editiert, zuletzt von guru ()

  • hmm, da ich das vorhin von hand direkt ins forumreingecodet habe, hats natuerlich ein
    bisschen fehler drin.


    ich hab mal noch schnell was voll funktionsfaehiges daraus gemacht, das waere hier
    runterzuladen



    was das programm macht:


    es generiert eine instanz von sich, und haengt sich einen thread an, der beim beenden die ausgabe macht, das sich das programm beendet.
    danach rufts eine methode auf, die einen string schreibt (irgend eine dummymethode halt)
    danach beende ich das programm mit dem befehl System.exit(0);
    und siehe da, das programm schreibt noch hin, das es sich beendet :)

    Dateien

    • ExitMessage.zip

      (2,96 kB, 89 Mal heruntergeladen, zuletzt: )

    i consider myself a nerd...

    2 Mal editiert, zuletzt von guru ()