Buchtipp

Buchtipp: Concurrency in C# Cookbook

Buchtipp: Concurrency in C# Cookbook

Buchtipp

Buchtipp: Concurrency in C# Cookbook


In Zeiten moderner Multiprozessorsysteme laufen häufig mehrere Anwendungen, zumindest aber Betriebssystem und eine Anwendung gleichzeitig auf unterschiedlichen Kernen. Doch auch innerhalb einer Anwendung ist parallele und/oder asynchrone Programmierung sinnvoll. Hat dies früher vom Programmierer Kenntnisse über Taskverwaltung, Synchronisierung und mehr verlangt, so unterstützen moderne Programmiersprachen beide Modelle, ohne dass der Entwickler sich explizit darum kümmern muss. Das heißt nicht, dass Kenntnisse zu ­Threads überflüssig werden, aber sie sind nun mehr in jeder Situation erforderlich. Dennoch gibt es viele Programmierer, die vor der Entwicklung solcher Applikationen zurückschrecken und lieber sequenziellen Code schreiben. Doch spätestens, wenn das GUI aufgrund anderer Aufgaben Ruckelsymptome zeigt oder gar Wartezeiten aufweist, wird es Zeit für eine Veränderung.

Stephan Cleary startet mit einer kurzen Einführung zu Nebenläufigkeit, parallele und asynchrone Programmierung und Multithreading. Doch sein Buch ist kein Lehrbuch, sondern eine Rezeptsammlung. Und so reißt er die Themen in den folgenden Kapiteln nur kurz an, gerade soweit, dass es möglich wird, den ganzen Rest zu verstehen. Wer eine tief gehende theoretische Einführung sucht, ist mit diesem Buch falsch beraten.

Die Rezepte sind thematisch gruppiert, z. B. grundlegende asynchrone Aufrufe, parallele Bearbeitung, kurz vorm Ende auch Synchronisierung und vieles mehr, gut erkennbar bei einem Blick ins Inhaltsverzeichnis, da jedem Thema ein eigenes Kapitel gewidmet ist.

Die Rezepte selbst folgen einem einheitlichen Aufbau: Problem – Lösung – Besprechung – Verweise auf andere Rezepte. Die Rezepte sind musterartig aufgebaut, sie beinhalten jeweils ein wenig Beispielcode, im kürzesten Fall ein einzelnes Statement, meist ein paar wenige Zeilen. Der Wert des Buchs liegt darin, dass der Autor in der Problemstellung den jeweiligen Kontext schafft, in dem das Statement oder der Code sinnvoll einsetzbar wird. So erhält der Leser die Information mit entsprechendem Praxisbezug. In erster Linie will das Buch als Nachschlagewerk genutzt werden, nach dem Motto „keine Angst vor paralleler Programmierung“. Wenn der Entwickler vor der Aufgabe steht, Code asynchron oder parallel ausführen zu müssen (oder zu wollen, denn es lohnt auch an Stellen, wo man nicht muss) und nicht gleich eine Lösung parat hat, so kann er einfach im Buch das passende Rezept nachschlagen und die jeweilige Aufgabe umsetzen. So lässt sich...