2013-08-19 13 views
5

beim Debuggen der Java-Multithreading-Programm legte ich Haltepunkte. nach Start-Methode wird aufgerufen, das Steuerelement wird nicht laufen Menthod können Sie bitte lassen Sie mich wissen, die Debug-Prozedur.Eclipse Java Multithread-Programm Debugging

Beispielcode

class Test extends Thread { 
    public static void main(String[] args) { 
     try { 
      Thread t = new Thread(new Test()); 
      t.start(); 
      t.start(); 
     } catch (Exception e) { 
      System.out.print("e "); 
     } 
    } 

    public void run() { 
     for(int i = 0; i < 2; i++) 
      System.out.print(Thread.currentThread().getName() + " "); 
    } 
} 
+0

Bitte seien Sie expliziter oder stellen Sie etwas Code zur Verfügung. – GGrec

Antwort

7

Debugger beginnt mit Haupt-Thread, da der Haltepunkt in Haupt-Thread ist.
t.start() erstellt einen neuen Thread.
Aber der Debugger wird mit dem eigentlichen Thread fortfahren.

Wenn Sie den neu erstellten Thread debuggen möchten, müssen Sie einen Breakpoint in run() Methode auch festlegen. Dann geht das Debugger-Steuerelement an den neu erstellten Thread, aber es ist für den Benutzer unsichtbar.

Wenn Sie das Steuerelement in run() Methode der neu erstellten Thread sehen möchten, dann müssen Sie die folgenden Schritte folgen -

  1. einen Haltepunkt in run() Methode Setzen Sie zusammen mit dem main() Methode.
  2. Starten Sie das Debuggen des Programms, bis Sie die Anweisung t.start() drücken.
  3. Nachdem Sie t.start() abgeschlossen haben, gehen Sie zur "Debug" -Ansicht. Dort finden Sie 2 laufende Threads. (Sie können die "Debug" Ansicht in Eclipse finden, indem Sie zu "Window -> Show View -> Debug" gehen).
    • Erstens ist ein Haupt-Thread
    • zweite ist neu erzeugte Faden (z.B. [Thema-1])
  4. Klick auf den zweiten Thread die Kontrolle in Laufverfahren zu sehen.
  5. Nach Abschluss der Ausführung des Threads gehen Sie erneut zur Ansicht "Debug" und klicken Sie auf den Haupt-Thread, um mit dem Debuggen des Hauptthreads fortzufahren.

Hinweis: Wenn Sie mit dem Haupt-Thread nach dem 3. Schritt in Richtung Ende des Fadens weiter, dann werden Sie nicht in der Lage sein, Ihren neuen Thread zu debuggen.