- Mehrfädigkeit
-
Der Begriff Multithreading (auch Mehrfädigkeit) bezeichnet das gleichzeitige Abarbeiten mehrerer Threads (das sind Ausführungsstränge innerhalb eines einzelnen Prozesses oder eines Tasks).
Software
Meist ist mit dem Begriff das softwareseitige Multithreading gemeint, bei dem in aller Regel nur ein Prozessor beteiligt ist. Die dann vorhandene scheinbare Gleichzeitigkeit wird in Wirklichkeit durch geschickte Programmierung erzeugt. Einzelne Threads eines Prozesses/Tasks können sehr schnell auf zeitkritische Ereignisse reagieren, während andere Threads langwierige Berechnungen durchführen.
Ohne weitere Hardwareunterstützung reduziert das Multithreading die Gesamtsystemleistung durch den bei Threadwechseln entstehenden Overhead. Deshalb wird der Programmierer die Anzahl der Threadwechsel möglichst gering halten.
Bei Symmetrischen Multiprozessorsystemen kann die Rechenarbeit eines Prozesses/Tasks durch Multithreading auf mehrere Systemprozessoren verteilt werden.Hardware
Das hardwareseitige Multithreading unterscheidet sich vom softwareseitigen dadurch, dass die Hardware eines Prozessors das gleichzeitige Abarbeiten mehrerer Threads unterstützt. Die Software muss durch softwareseitiges Multithreading oder mehrerer Prozesse/Tasks diese Fähigkeit ausnutzen.
Da beim hardwareseitigen Multithreading kein Overhead beim Thread-Wechsel entsteht, sondern im Gegenteil durch die Vermeidung von Pipeline-Hazards unproduktive Taktzyklen vermieden werden, kann die Gesamtsystemleistung pro CPU steigen, indem Threadwechsel möglichst häufig vorgenommen werden.Weblinks
Wikimedia Foundation.