Parallelität in C++: Ein praktischer Leitfaden zur Multithread-Programmierung
300 Seiten
German
PDF
4.5

Parallelität in C++: Ein praktischer Leitfaden zur Multithread-Programmierung

Parallelität in C++: Ein praktischer Leitfaden zur Multithread-Programmierung

Autor:

Jahr:

Zusammenfassung:

Das Buch „Parallelität in C++: Ein praktischer Leitfaden zur Multithread-Programmierung“ ist ein umfassendes Handbuch für Entwickler, die moderne Ansätze zur Erstellung von Multithread- und asynchronen Anwendungen in C++ erlernen möchten. Der Autor, Alexei Iwanow, ein erfahrener Systemingenieur und Dozent, erläutert nacheinander alle wesentlichen Aspekte der parallelen Programmierung, von den Grundlagen bis hin zu komplexen Synchronisationsmustern.



Worum geht es in diesem Buch?

Das Buch deckt das gesamte Spektrum an Themen ab, die für die effektive Arbeit mit Parallelität in C++ erforderlich sind:

  • Grundlagen des Multithreading: Erstellen und Verwalten von Threads mit std::thread, Übergabe von Argumenten, Behandlung von Ausnahmen in Threads.
  • Datensynchronisation: Mutexe (std::mutex, std::shared_mutex), Sperren (std::lock_guard, std::unique_lock), Bedingungsvariablen (std::condition_variable).
  • Atomare Operationen: std::atomic, C++-Speichermodelle (memory ordering), lock-freie Programmierung und Vermeidung von Datenrennen.
  • Asynchrone Aufgaben: std::async, std::future, std::promise, std::packaged_task — Schreiben von asynchronem Code ohne explizite Thread-Verwaltung.
  • Parallele Algorithmen: Verwendung von std::execution::par zur Parallelisierung von Standardalgorithmen (C++17).
  • Entwurfsmuster: Thread-Pool, Producer-Consumer, Reader-Writer-Lock, Barrieren und Latchs (std::barrier, std::latch in C++20).
  • Debugging und Profiling: Werkzeuge zur Suche nach Deadlocks, Datenrennen und Engpässen in Multithread-Code.


Für wen ist dieses Buch?

Das Buch richtet sich an fortgeschrittene C++-Entwickler, die bereits mit den Grundlagen der Sprache vertraut sind (Zeiger, Templates, STL) und sich in die Themen der Parallelität vertiefen möchten. Es ist nützlich für:

  • Programmierer von hochbelasteten Servern und Netzwerkanwendungen.
  • Entwickler von Spielen und Grafik-Engines, bei denen die Leistung entscheidend ist.
  • Ingenieure, die an Echtzeitsystemen oder eingebetteten Systemen arbeiten.
  • Alle, die sicheren und effizienten Multithread-Code in C++ schreiben möchten.


Was wird der Leser lernen?

Nach der Lektüre des Buches werden Sie in der Lage sein:

  • Sicher mit der Standard-Thread-Bibliothek von C++ umzugehen (std::thread, Mutexe, Futures).
  • Das C++-Speichermodell zu verstehen und die richtige Ordnung atomarer Operationen zu wählen.
  • Typische Fehler zu vermeiden: Deadlock, Livelock, Datenrennen.
  • Skalierbare parallele Systeme mit modernen Mustern zu entwerfen.
  • Parallele Algorithmen zur Beschleunigung von Berechnungen einzusetzen.
  • <

Empfehlungen