Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

[Java] Threads

  Alt 8. Nov 2006, 11:05
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat