Parallel Computing in .NET
Kommentare

Erfahrene .NET-Entwickler zögern oft, bevor sie ein Buch kaufen. Zu viele Autoren beschränken sich darauf, die Basics zu erklären oder wiederholen im Wesentlichen den Inhalt der MSDN Library. „Parallel

Erfahrene .NET-Entwickler zögern oft, bevor sie ein Buch kaufen. Zu viele Autoren beschränken sich darauf, die Basics zu erklären oder wiederholen im Wesentlichen den Inhalt der MSDN Library. „Parallel Computing in .NET“ von Marc André Zhou gehört nicht in diese Kategorie. Es ist ein Beispiel dafür, wie gute Bücher für Profientwickler sein sollten: Sie müssen ein Thema so beleuchten, dass sie einen echten Mehrwert im Vergleich zum Nachschlagewerk aus dem Hause Microsoft, der MSDN Library, bieten.

Die ersten knapp 80 von rund 480 Seiten widmet der Autor der Einführung in die parallele Programmierung. Falls Sie neu im Thema sind, erhalten Sie eine fundierte und kompakte Einleitung. Leser, die paralleles Programmieren beispielsweise aus anderen Programmierumgebungen bereits kennen, blättern die Einleitung rasch durch und füllen vielleicht hier und da vorhandene Wissenslücken. Auch wenn das Buch „.NET“ im Titel trägt, fährt Marc André Zhou im dritten Kapitel mit einem genauen Blick hinter die Kulissen fort. Sie erfahren, wie Threads auf Ebene des Windows-Betriebssystems funktionieren, was meiner Erfahrung nach spätestens bei der Fehlersuche von großem Wert ist. Aufbauend darauf werden die „Urahnen“ der parallelen Programmierung in .NET, die Klassen aus dem >System.Threading-Namensraum, vorgestellt. Wie werden Threads erstellt, gemanaged, synchronisiert und mithilfe von Thread Pools eingeplant? Das Buch gibt darauf Antworten, verschafft einen guten Überblick und erläutert Hintergründe im Bereich von Threading in .NET. Die Unterstützung paralleler und asynchroner Programmierung zu verbessern, war ein erklärtes Ziel von Microsoft für die aktuelle Version 4 von .NET. Das Ergebnis dieser Anstrengungen sind die Task Parallel Library (TPL) und Parallel Linq (PLINQ) . Mit den Kapiteln 6, 7 und 8 machen sie den Löwenanteil des Buchs aus. Wenn es überhaupt einen kleinen Wehrmutstropfen in diesem Bereich des Buchs gibt, dann sind es die TPL- und PLINQ-Beispiele, denn sie sind relativ kurz und einfach gehalten. Das erleichtert zwar einerseits ihre Verständlichkeit für Anfänger. Andererseits würde man sich als erfahrener Leser hier und da etwas größere, praxisbezogene Beispiele wünschen, die demonstrieren, wie die Mechanismen beispielsweise in einer Datenbankanwendung oder beim Arbeiten mit Netzwerk und Dateien am besten eingesetzt werden. Wer hat nicht schon ein Performanceproblem durch Parallelisierung lösen wollen und war überrascht, dass sein paralleler Algorithmus langsamer war als das sequenzielle Original? Wenn Sie mit dem vorliegenden Buch neu in die parallele Programmierung einsteigen, werden Sie auf dieses Aha-Erlebnis nicht lange warten müssen. Microsoft hat dem in Visual Studio 2010 Rechnung getragen und eine ganze Palette an neuen Debugging- und Profiling-Möglichkeiten eingebaut. Das vorliegende Buch behandelt sie in Kapitel 9. Sie brauchen jedoch keine Angst zu haben: Der Autor widersteht dem Drang, Seiten zu Füllen, indem jeder noch so unwichtige Dialog mit all seinen Schaltflächen gezeigt wird. Der Überblick über die neuen VS-Tools ist kurz, knackig und informativ geworden. In den Kapiteln 10 und 11 bietet uns der Autor einen Blick über den Tellerrand der parallelen Programmierung in C# und dem .NET Framework. Er stellt die Concurrency and Coordination Runtime (CCR) vor und vergleicht sie mit TPL und PLINQ. Sie lernen darüber hinaus Technologien wie Axum und STM.NET kennen, die vergleichsweise noch in den Kinderschuhen stecken. Neben diesen Themen versteckt sich auch die wichtigste Neuerung, die mit C# 4.5 das Licht der Welt erblickt und bereits seit einiger Zeit in Form einer CTP zum Ausprobieren mit der Go-live-Lizenz zur Verfügung steht: Das neue Schlüsselwortpaar asyncund await. Ich persönlich finde, dass diesem Thema mehr Raum hätte eingeräumt werden sollen. Streng genommen geht es dabei jedoch mehr um asynchrone und nicht um parallele Programmierung, und insofern ist die Entscheidung von Marc André Zhou, asyncund await nur am Rande zu behandeln, nachvollziehbar.

Mein Fazit über dieses Buch ist klar: Ein toller Einstieg für Neulinge im Bereich der parallelen Programmierung und eine Möglichkeit zu Komplettierung von schon vorhandenem Wissen für alle, die auf dem Gebiet schon etwas praktische Erfahrung gesammelt haben. Auf der positiven Seite steht auf jeden Fall, dass das Buch kein Nachschlagewerk geworden ist, sondern Hintergründe beleuchtet und Zusammenhänge erklärt. Auf der Minusseite findet man als kleine Punkte die etwas einfach geratenen Beispiele und die ein wenig kurz geratene Abhandlung von asyncund await. Alles in allem kann ich dieses Buch ruhigen Gewissens jedem C#- Programmierprofi wärmstens empfehlen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -