Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [Java] Threads (https://www.delphipraxis.net/80387-%5Bjava%5D-threads.html)

Luckie 8. Nov 2006 10:05


[Java] Threads
 
Ich habe folgenden Code:
Code:
   public void RunServer() {
      synchronized (this) {
         log("Methode 'RunServer'");

         log("openServer");
         ObjectServer db4oServer = Db4o.openServer("demo.yap", 4488);
         log("grantAccess");
         db4oServer.grantAccess("user", "pass");

                        // We only need low priority since the db4o server has
                        // it's own thread.
         Thread.currentThread().setName(this.getClass().getName());
         Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

         try {
            this.notifyAll();
            while (!stop) {   
               this.notify();               
               ConsoleIO con = new ConsoleIO();
               String s = con.promptAndReadString("Stoppen mit 'STOP': ");
               if (s.equalsIgnoreCase("STOP"))
                  stop = true;
               this.wait(1);
            }
         } catch (Exception e) {
            e.printStackTrace();
         }

         log("close");
         db4oServer.close();
      }
   }
Wie man an dem Kommentar sieht, erzeugt openServer automatisch einen eigenen Thread. (Wenn ich das richtig verstanden habe.) Was mich jetzt interessiert ist die while-Schleife. Warum wird da nicht ständig "Stoppen mit 'STOP':" ausgegeben, sondern nur einmal? Und wenn man dann STOP eingibt, wird die Schleife verlassen. Es funktioniert also so, wie ich es mir vorstelle. Nur warum tut es das?

leddl 8. Nov 2006 10:09

Re: [Java] Threads
 
Zitat:

Zitat von Luckie
Warum wird da nicht ständig "Stoppen mit 'STOP':" ausgegeben, sondern nur einmal? Und wenn man dann STOP eingibt, wird die Schleife verlassen. Es funktioniert also so, wie ich es mir vorstelle. Nur warum tut es das?

Naja, promptAndReadString erwartet eben eine Eingabe, und bevor du nicht etwas eingegeben hast, läuft die While-Schleife eben auch nicht weiter. ;)

Oder hab ich da jetzt was falsch verstanden? :gruebel:

Luckie 8. Nov 2006 10:12

Re: [Java] Threads
 
Zitat:

Zitat von leddl
Naja, promptAndReadString erwartet eben eine Eingabe, und bevor du nicht etwas eingegeben hast, läuft die While-Schleife eben auch nicht weiter. ;)

:wall: Stimmt.

Ist ansonsten an dem Code etwas auszusetzen oder ist das in Ordnung so?

leddl 8. Nov 2006 10:20

Re: [Java] Threads
 
Ich muß mich auch erst seit kurzem ernsthafter mit Java auseinandersetzen, und habe - außer trivialen Beispielen - mit Threads noch nicht besonders viel gearbeitet, aber spontan würde ich sagen, der Code sieht doch gut aus ;)

Luckie 8. Nov 2006 10:44

Re: [Java] Threads
 
Ah, noch ein Leidensgenosse. ;)

Vjay 8. Nov 2006 10:47

Re: [Java] Threads
 
Hier ist noch ein gezwungener Freiwilliger ;)

leddl 8. Nov 2006 10:48

Re: [Java] Threads
 
Zitat:

Zitat von Luckie
Ah, noch ein Leidensgenosse. ;)

Naja, ich hatte die Wahl zwischen COBOL und Java :mrgreen:
Nachdem ich jetzt etwas mehr damit gearbeitet habe, finde ich Java inzwischen eigentlich sogar ganz nett ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz