{{Stub}} Multithreading (=Mehrfädigkeit) bezeichnet die gleichzeitige Ausführung mehrerer Aufgaben innerhalb eines Prozesses. Dabei wird zwischen Software- und Hardwaremultithreading unterschieden. == Softwaremultithreading == Bei softwareseitigem Multithreading wird jeder Thread in dem Prozesstask als eigener Task ausgeführt, der sich aber von einen normalen Task darinn unterscheidet, dass er sich den Speicher und die zugeteilte Rechenzeit vom Scheduler mit dem Rest des Prozesstasks teilen muss. Das klingt vieleicht banal, bringt aber dennoch einen Geschwindigkeitsvorteil. Die Umsetzung muss durch eine selbstgeschriebene Bibliothek erfolgen, die mit den Userprogrammen gelinkt wird. == Hardwaremultithreading == Hardwaremultithreading macht es möglich, auch auf einem Prozessorkern mehrere Prozesse gleichzeitig auszuführen. Dies wird durch das Duplizieren der Allzweckregister, des Stackpointers sowie des Instructionpointers erreicht. Intel nennt diese Technik bei ihren Prozessoren Hyper-Threading und wendet dies z.B. beim recht leistungsschwachen Intel Atom an, der durch Hyper-Threading dem Betriebssystem zwei Prozessorkerne zur Verfügung stellt, wobei der Zweite ein rein virtueller Kern ist. == Hyper-Threading ==