Thread-Engpässe feststellen

Die Thread-Ansicht ist die Primäransicht für die Feststellung von Thread-Engpässen. Sie zeigt ein Protokoll der Aktivitäten aller Programm-Threads an und unterstützt Sie bei der Feststellung von Thread-Konkurrenzsituationen und gegenseitigen Thread-Sperren.

Voraussetzung: Thread-Daten sammeln

Eine Konkurrenzsituation tritt ein, wenn ein Thread auf eine Ressource wartet, die nicht sofort verfügbar ist. Eine solche Situation verlangsamt die Ausführung Ihres Codes, kann sich im Verlaufe der Zeit jedoch auflösen.

Zu einer gegenseitigen Sperre kommt es, wenn ein Thread auf eine Ressource wartet, die ein zweiter Thread gesperrt hat, und der zweite Thread auf eine Ressource wartet, die der erste Thread gesperrt hat. An einer gegenseitigen Sperre können mehr als zwei Threads beteiligt sein. Eine gegenseitige Sperre kann sich nicht von alleine auflösen. Sie führt oft dazu, dass die gesamte Anwendung oder der von der Sperre betroffene Abschnitt der Anwendung angehalten wird.

Gehen Sie wie folgt vor, um Thread-Konkurrenzsituationen und gegenseitige Thread-Sperren zu finden:

  1. Rufen Sie die Thread-Ansicht auf. Klicken Sie dazu mit der rechten Maustaste auf Ihre Profilerstellungsressource (Thread-Analyse). Wählen Sie dann im Popup-Menü Öffnen mit > Thread-Ansicht aus.
  2. Suchen Sie in der Thread-Ansicht nach vertikalen Pfeilen zwischen den Threads. Ein einzelner Pfeil zeigt eine Thread-Konkurrenzsituation an, bei der ein Thread darauf wartet, dass ein anderer Thread eine Sperre freigibt. Mehrere Pfeile können ein Hinweis auf eine gegenseitige Sperre sein. Eine rautenförmige Markierung zeigt an, dass ein Thread auf eine Sperre wartet, der die Sperre haltende Thread jedoch nicht ermittelt werden kann.
  3. Bewegen Sie den Cursor auf ein Thread-Segment, das auf eine Sperre wartet. Sie sehen eine Kurzinfo mit dem Namen der Sperre und dem Thread, der die Sperre hält.

Nachfolgend sehen Sie ein Beispiel für eine Konkurrenzsituation:

Abbildung des Fensters 'Thread-Ansicht' mit einem vertikalen Pfeil für eine Konkurrenzsituation

Nachfolgend sehen Sie ein Beispiel für eine gegenseitige Sperre:

Abbildung des Fensters 'Thread-Ansicht' mit zwei vertikalen Pfeilen für eine gegenseitige Sperre

Anmerkung: Wenn Sie ein Programmprofil mit dem Profiltyp 'Ausführungszeitanalyse' erstellen, können Sie nur Thread-Daten zu Threads mit den Status 'Aktiv' und 'Beendet' sammeln oder anzeigen. Für die Anzeige von Engpässen müssen Sie in Ihre Profilgruppe den Profiltyp 'Thread-Analyse' aufnehmen.

Die folgenden Artikel enthalten Anweisungen für die Steuerung der Thread-Ansicht:

Übergeordnetes Thema: Thread-Engpässe erkennen

Zugehörige Tasks
Thread-Engpässe verursachende Methoden feststellen

Zugehörige Verweise
Thread-Ansicht

Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2000, 2004. Alle Rechte vorbehalten.