Gleichzeitige Ausführung von Threads Was ist Multithreading?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Dr. Jürgen Ehneß

Unter den Begriff des Multithreadings fallen Verfahren und Techniken, mit denen sich mehrere Ausführungsstränge von Prozessen oder Anwendungen gleichzeitig oder quasi-gleichzeitig ausführen lassen. Die Verfahren und Techniken können Soft- oder Hardware-basiert arbeiten. Ziel des Multithreadings ist es, die Ausführungsgeschwindigkeit der Anwendungen oder allgemein die Rechengeschwindigkeit zu erhöhen. Sowohl Intel als auch AMD bieten Prozessoren mit Multithreading-Techniken an.

Firmen zum Thema

Die wichtigsten IT-Fachbegriffe verständlich erklärt.
Die wichtigsten IT-Fachbegriffe verständlich erklärt.
(Bild: © aga7ta - Fotolia)

Multithreading ist ein Begriff aus der Informatik. Es handelt sich um Verfahren oder Techniken, mit denen sich mehrere Threads eines Prozesses gleichzeitig oder quasi-gleichzeitig (pseudo-gleichzeitig) ausführen lassen. Als Threads werden einzelne Ausführungsstränge von Prozessen bezeichnet. Die Multithreading-Verfahren oder -Techniken arbeiten Soft- oder Hardware-basiert.

Ziel des Multithreadings ist es, die Ausführungsgeschwindigkeit der Anwendungen zu erhöhen oder allgemein die Leistungsfähigkeit und Rechengeschwindigkeit der Prozessoren zu verbessern. Eine Anwendung, die aus mehreren Prozessen und Threads besteht, arbeitet dank Multithreading und der parallelen Abarbeitung mehrerer Aufgaben schneller. Die Anwendung muss dafür vorbereitet sein und sich in sinnvolle, gleichzeitig zu bearbeitende Threads aufteilen lassen. Zudem ist ein gewisses Zusammenspiel zwischen Hard- und Software notwendig.

Die großen Prozessorhersteller Intel und AMD setzen Multithreading-Technologien ein. Sie basieren auf dem Simultaneous Multithreading (SMT). Bei SMT verhält sich ein einzelner Prozessor wie mehrere logische Prozessoren. Intel nennt die Technologie „Hyper-Threading“.

Die verschiedenen Arten des Multithreadings

Grundsätzlich kann zwischen den Software-basierten und Hardware-basierten Multithreading-Technologien unterschieden werden. Software-basiertes Multithreading funktioniert mit einem einzigen Prozessorkern ohne besondere Hardware-Unterstützung. Für den Prozessorkern selbst ist die parallele Abarbeitung mehrerer Threads nicht erkennbar. Die Software (die Anwendung oder das Betriebssystem) regelt die scheinbar gleichzeitige Ausführung mehrerer Threads über Multiplexen und eine intelligente Zuteilung der einzelnen Ausführungsstränge an den Prozessor.

Beim Hardware-basierten Multithreading ist die CPU in der Lage, mehrere Threads gleichzeitig zu bearbeiten. Die CPU-Leistung steigt, ohne dass der Takt verändert werden muss oder sich der Energiebedarf signifikant erhöht. Damit die CPU mehrere Ausführungsstränge parallel bearbeitet, müssen Anwendungen, Betriebssystem und CPU zusammenarbeiten.

Die Hersteller AMD und Intel arbeiten mit dem sogenannten „Simultaneous Multithreading“ (SMT). Es bietet echte Gleichzeitigkeit, indem Threads in Pipelines tatsächlich parallel bearbeitet werden. Einzelne Prozessoren treten nach außen wie mehrere logische Prozessoren auf. Moderne Protokolle für Massenspeicherschnittstellen wie NVMe (Non-Volatile Memory Express) unterstützen die Möglichkeit des Multithreadings.

Abgrenzung zum Multitasking

Der Unterschied zum Multitasking besteht darin, dass beim Multitasking nicht mehrere Threads, sondern mehrere Prozesse quasi-gleichzeitig ausgeführt werden. Die einzelnen Prozesse sind voneinander abgeschottet. Das Multitasking teilt den einzelnen Prozessen in einer bestimmten Schaltfrequenz und Priorisierung die benötigten Ressourcen wie Rechenleistung, Arbeitsspeicher und Speicherplatz zu. Von außen und über einen längeren Zeitraum betrachtet, erscheint es so, als liefen die Prozesse gleichzeitig ab. Die Zahl der quasi-gleichzeitig per Multitasking ausführbaren Prozesse hängt von den Ressourcen des Rechners ab.

(ID:47361345)

Über den Autor