Threads und Prozesse
Threads und Prozesse sind verwandte Konzepte der Informatik. Beide stellen Folgen von Anweisungen dar, die in einer bestimmten Reihenfolge ausgeführt werden müssen. Anweisungen von verschiedenen Threads oder Prozessen können aber parallel ausgeführt werden.
Prozesse werden im Betriebssystem verwaltet und entsprechen dem, was Benutzer als Programme oder Anwendungen sehen. Ein Thread hingegen wird von einem Prozess verwaltet. Aus diesem Grund werden Threads gelegentlich als Lightweightprozesse bezeichnet. Jeder Prozess besteht aus einem oder mehreren Threads.
Die Möglichkeit, mehrere Prozesse auszuführen, versetzt einen Computer in die Lage, mehr als eine Aufgabe gleichzeitig auszuführen. Das Vorhandensein mehrerer Threads versetzt einen Prozess in die Lage, Arbeiten so aufzuteilen, dass sie parallel ausgeführt werden können. Auf einem Computer mit Multiprozessoren können Prozesse oder Threads auf verschiedenen Prozessoren ausgeführt werden. Dies ermöglicht eine echte Parallelverarbeitung.
Echte Parallelverarbeitung ist nicht immer möglich. Threads müssen manchmal synchronisiert werden. Ein Thread muss möglicherweise auf das Ergebnis eines anderen Threads warten, oder ein Thread benötigt exklusiven Zugriff auf eine Ressource, die von einem anderen Thread verwendet wird. Synchronisierungsprobleme sind eine häufige Ursache von Programmfehlern in Multithreadanwendungen. Es kann passieren, dass Threads auf eine Ressource warten, die nie verfügbar wird. Dies führt zu einem Zustand, der Deadlock genannt wird.
Der Visual Studio-Debugger stellt leistungsstarke und benutzerfreundliche Tools zum Debuggen von Threads und Prozessen bereit.
Tools zum Debuggen von Threads und Prozessen in Visual Studio
Die wichtigsten Tools für die Arbeit mit Prozessen in Visual Studio sind das Dialogfeld An den Prozess anhängen sowie das Prozessfenster und die Symbolleiste Debugspeicherort. Die wichtigsten Tools für das Debuggen von Threads sind das Threadfenster, Threadmarker in Quellcodefenstern sowie die Symbolleiste Debugspeicherort.
Die wichtigsten Tools zum Debuggen von Multithreadanwendungen sind die Fenster Parallele Stapel und Parallele Aufgaben.
In der folgenden Tabelle sind die verfügbaren Informationen und die an jeder Stelle möglichen Aktionen aufgeführt:
Benutzeroberfläche |
Verfügbare Informationen |
Ausführbare Aktionen |
---|---|---|
Dialogfeld An den Prozess anhängen |
Verfügbare Prozesse, an die angehängt werden kann:
|
Auswählen eines Prozesses, an den angehängt werden soll Auswählen eines Remotecomputers Ändern des Transporttyps für die Verbindung mit Remotecomputern |
Prozessfenster |
Angehängte Prozesse:
|
Tools:
Kontextmenü:
|
Threadfenster |
Threads in aktuellem Prozess:
|
Tools:
Kontextmenü:
Sonstige Aktionen:
|
Quellcodefenster |
Threadindikatoren im linken Bundsteg geben einzelne oder mehrere Threads an (standardmäßig deaktiviert, die Aktivierung erfolgt über das Kontextmenü im Fenster Threads) |
Kontextmenü:
|
Symbolleiste Debugspeicherort |
|
|
Fenster Parallele Stapel |
|
|
Fenster Parallele Aufgaben |
|
|
Siehe auch
Aufgaben
Gewusst wie: Verwenden des Fensters "Prozesse"