C++ Concurrency in Action

Direkter als mit diesem Buch kann man sich kaum in die Thread-Implementierung mit C++ einarbeiten. So lässt sich Anthony Williams' Werk uneingeschränkt empfehlen.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 2 Min.
Von
  • Dr. Rüdiger Berlich

Anthony Williams
C++ Concurrency in Action. Practical Multithreading

Manning Publications, 2012
528 Seiten
69,99 US-$ inkl. E-Buch
ISBN 978-1-9339-8877-1

Die wohl wichtigste Neuerung des im Spätsommer 2011 verabschiedeten neuen C++-Standards war die direkte Unterstützung von Threads. Nicht nur auf der Ebene der Standardbibliotheken brachte dies umfangreiche Änderungen mit sich; Compiler selber müssen nun konkurrierende Zugriffe auf den Hauptspeicher bei der Codegenerierung berücksichtigen. Wer heute an umfangreichen C++-Projekten arbeitet, muss diese Änderungen kennen.

Die Geschichte der neuen Thread-Implementierung in C++ spiegelt diese Aussage wider: Die Boost-Bibliothekssammlung – Ursprung vieler Neuerungen in C++11 – besaß seit 2001 eine Thread-Implementierung. Als "Wrapper" um die nativen Thread-Bibliotheken verschiedener Plattformen etablierte sie sich schnell als De-facto-Standard für die portable Thread-Programmierung. Als der ursprüngliche Autor seine Arbeit an der Boost.Thread-Bibliothek einstellte, übernahm Anthony Williams. Er engagierte sich zudem darin, seine Änderungen in Form von Draft-Proposals in den damals in der Entwicklung befindlichen neuen Sprachstandard einzubringen.

Seine Erfahrungen sammelte Williams in einem umfangreichen Buch, das als Pre-Release nur elektronisch erhältlich war; schließlich befand sich der Sprachstandard noch in der Entwicklung. Das fertige Buch hat Manning 2012 veröffentlicht. Der englischsprachige Text eignet sich zwar nicht für Programmieranfänger. Wer C++ jedoch schon kennt, dürfte ohne weitere Vorkenntnisse mit diesem Buch den Einstieg in die Thread-Programmierung schaffen.

Die ersten Kapitel beschäftigen sich mit Grundlagen, etwa den Gründen, aus denen man zur Thread-Programmierung greifen sollte, und führt anschließend einfache Primitive zum Zugriffsschutz sowie für die Synchronisation parallel ablaufender Operationen ein. Alle neuen Konstrukte, wie futures und promises bespricht der Autor, und er wagt einen Ausflug in Richtung der schwierigen "lock-free data structures". Williams rundet den Text durch Tipps zum Design Thread-basierter Anwendungen ab.

Andere Autoren dürften sich beim Thema C++-Multithreading zunächst bei Williams informieren. Direkter als mit diesem Buch kann man sich kaum in das Thema einarbeiten. Die Darstellung eignet sich nicht nur zur "linearen" Lektüre, sondern auch als Nachschlagewerk. Und da es zudem spannend zu lesen und gut geschrieben ist, kann man es uneingeschränkt empfehlen. (ane)