Was ist Multithreading? Die Technik einfach erklärt!


Um die Geschwindigkeit von Prozessorkernen zu erhöhen, ohne dabei die Taktfrequenz ändern zu müssen, lässt man mit Multithreading die CPU mehrere Aufgaben gleichzeitig bearbeiten. Genauer gesagt: Man lässt mehrere Threads gleichzeitig bearbeiten. Als Thread kann man einen Strang eines Prozesses auffassen. Programme lassen sich in Prozesse aufteilen und diese Prozesse dann wiederum in einzelne Threads. Jeder Prozess besteht aus mindestens einem Thread.

Prozesse werden in der Regel sequenziell abgearbeitet, also ein Prozess nach dem anderen. Das ist nicht optimal, denn auf diese Weise blockieren langwierige Aufgaben die Hardware. Wird ein anderer Prozess spontan benötigt, muss dieser dennoch warten, bis er an der Reihe ist. Beim Multithreading werden mehrere Threads gleichzeitig bearbeitet. Wobei auch diese Aussage nur bedingt korrekt ist: Wirkliche Gleichzeitigkeit kann nur selten gewährleistet werden, lässt sich aber inzwischen auch erreichen.

Doch auch die sogenannte Pseudo-Gleichzeitigkeit sorgt für einen Leistungsschub: Dabei organisiert und berechnet das System Threads so intelligent, dass man als Nutzer den Anschein von einer gleichzeitigen Bearbeitung bekommt. Nicht zu verwechseln ist diese Form der Gleichzeitigkeit mit den Möglichkeiten von Multicore-CPU. Besitzt das System mehrere Mikroprozessoren, werden auch mehrere Prozesse gleichzeitig bearbeitet.

Damit Multithreading wirkungsvoll eingesetzt werden kann, muss die Software dafür aufbereitet sein. Wenn Entwickler ihre Programme nicht in mehrere Threads aufteilen (können), funktioniert die Technologie nicht. Vielfach haben beispielsweise Gamer festgestellt, dass sie bei eingeschaltetem Multithreading eher einen Leistungsabfall bemerken. Die Computerspiele sind in diesem Fall nicht auf die Technik ausgelegt. Der Versuch des Systems, mehrere Threads gleichzeitig zu bearbeiten, wirkt sich dann nachteilig aus.



Source link

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.