15 Multithreading und die Task Parallel Library (TPL)
15.1 Überblick
Seit den Anfängen von .NET lassen sich mit mehr oder weniger viel Aufwand Multithreading-fähige Anwendungen programmieren. Grundlage war die Klasse Thread aus dem Namespace System.Threading. Mit Thread ließen sich nach Bedarf neue Threads ins Leben rufen, Threadprioritäten setzen und auch komplexe Synchronisationsmechanismen realisieren. Sie wussten (hoffentlich) zu jedem Zeitpunkt der Laufzeit über den Threadzustand Bescheid, konnten nach Bedarf Einfluss darauf ausüben.
Aber die Entwicklung der Hardware begann aus technischen Gründen einen Weg einzuschlagen, dem die Klasse Thread nicht mehr gewachsen war: die Multi-Core-Prozessoren. Während in all den Jahren zuvor die Taktfrequenz immer weiter nach oben getrieben worden ist, sahen sich die Entwicklungsfirmen bei einer Taktfrequenz von ca. 3 GHz einer natürlichen Grenze gegenüber: Prozessoren mit noch höherer Taktfrequenz ließen sich nicht mehr ausreichend kühlen. Um dennoch leistungsverbesserte Prozessoren anbieten zu können, wurden die Multi-Core-Prozessoren entwickelt. Zuerst waren es Double-Core-Prozessoren, schnell folgte die nächste Welle mit Quad-Core-Prozessoren. Ein Ende der Entwicklung ist derzeit nicht auszumachen.
Mit der Klasse Thread Anwendungen zu entwickeln, die die Möglichkeiten der Multi-Core-Prozessoren ausreizen, ist nur schwer möglich, denn die Klasse Thread wurde zu einer Zeit entwickelt, als es darum ging, mehrere Ausführungsstränge quasigleichzeitig auf einer CPU laufen zu lassen.
Dem hardwaretechnischen Fortschritt wird in .NET nunmehr mit der Einführung der TPL (Task Parallel Library) Rechnung getragen. TPL ist eine neue API, die uns in die Lage versetzt, Mehrkernprozessoren in unseren Anwendungen zu nutzen, ohne dass dabei die Komplexität des Programmcodes zunimmt. Ganz im Gegenteil, es ist sogar einfacher, die neue TPL zu programmieren, als die »alte« Klasse Thread. Nichtsdestotrotz kommen Ihnen die Kenntnisse der klassischen Multithreading-Programmierung bei dem Einsatz von TPL zugute. Nicht nur aus diesem Grund habe ich in diesem Buch auf die grundlegende Programmierung mehrerer Threads nicht verzichtet.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.