next up previous contents
Next: Userlevel und Kernel-Threads Up: Threads Previous: Threads   Contents


Vorteile von Threads

Erreichbarkeit:
Wenn ein Prozess für eine bestimmte Aktion (z.B. Anfrage nach einer Ressource) blockiert würde, so muss beim Einsatz von Threads nur ein Thread blockiert werden, während der Prozess ansonsten weiterarbeiten kann. Anwendungsbeispiele sind Webbrowser als Clients die eine Anfrage (ohne Timeout) an einen Server richten.

Wenn man in dem Beispiel nicht mit Threads arbeiten würde, so würde es bedeuten, dass der Webbrowser nur genau eine Anfrage bearbeiten kann. Erst wenn diese beendet ist, könnte die nächste Anfrage bearbeitet werden.

Im anderen Fall kann ein Thread die Anfrage an den Server starten, während ein anderer Thread eine bestimmte Zeit schläft und dann, wenn keine Verbindung zustande bekommen ist, den Thread abbricht.

Ressourcen teilen:
Es ist möglich, dass verschiedene Prozesse auf die gleichen Ressourcen (Datenspeicher, Prozessressourcen) zugreifen.
Effizienz:
Threads haben gegenüber herkömmlichen Prozessen den Vorteil, dass sie wesentlich effizienter arbeiten können, weil bei einem Wechsel der rechnenden Threads nur die Register ausgetauscht werden. Es sind beispielsweise weniger Instruktionen des Memory Management Systems (vgl. Kapitel [*]) notwendig.

Auch im Vergleich zur Erstellung von weiteren echten Prozessen ist es wesentlich günstiger neue Threads zu kreieren. Es ist natürlich ebenfalls effizienter was den Speicherverbrauch anbetrifft, wenn der Speicher nicht dupliziert wird.

Ausnutzung der Mehrprozessorarchitektur:
Wenn eine Mehrprozessorarchitektur zur Verfügung steht, ist es natürlich grundsätzlich sinnvoll, dass mehrere Prozesse tatsächlich gleichzeitig rechnen. Oft ist es allerdings nicht lohnend echte Prozesse abzuspalten, weil der Kommunikationsoverhead die gesamte Beschleunigung (Speedup) wieder auffrisst. Daher ist der Einsatz von Threads in bestimmten Fällen lohnend, da der Kommunikationsoverhead geringer ist.


next up previous contents
Next: Userlevel und Kernel-Threads Up: Threads Previous: Threads   Contents
Prof. Dr. Pluemicke 2003-05-10