C++ Multithreading


Zielgruppe:

Softwareentwickler, die die Möglichkeiten der C++-Bibliothek nutzen wollen, um Multithread-Applikationen zu entwickeln.

Aufgrund der stetig zunehmenden Verbreitung von Multicore-Systemen ist dieses Training insbesondere für Entwickler geeignet, die ihre Applikationen parallelisieren wollen, um von dem Leistungszuwachs zusätzlicher Prozessorkerne profitieren zu können.

Voraussetzungen:

Gute Kenntnisse der Programmiersprache C++98 (einschließlich Templates).

Kenntnisse der (sonstigen) C++11-Spracheigenschaften sind vorteilhaft, aber keine Voraussetzung für den Kurs. Die anderen Spracheigenschaften von C++11, C++14, C++17 und C++20 werden im Kurs "Modernes C++" behandelt.

Dauer:

3 Tage (mit praktischen Übungen)

Kursziel:

Seit der C++11-Standard verfügbar ist, können Multithread-Applikationen auch plattformunabhängig direkt in C++ entwickelt werden. Dieser Kurs zeigt, welche Multithread-Eigenschaften die C++-Standardbibliothek seit Einführung der Standards C++11, C++14 and C++17 zur Verfügung stellt und wie diese angewendet werden können.

Die im Standard vorgesehenen Multithread-Funktionen sind üblicherweise nicht in der C++-Bibliothek selbst realisiert, sondern werden auf ein zugrunde liegendes Betriebssystem abgebildet. Für die richtige Anwendung benötigt man deshalb ein gutes Allgemeinverständnis der Threading-Modelle von Betriebssystemen, sowie deren Einflüsse auf das Verhalten einer Applikation. Deshalb geht der Kurs gezielt auf diese Thematik ein und bietet somit auch Entwicklern ohne Multithread-Erfahrung einen idealen Einstieg in die Multithread-Technologie.


Inhalt:

Einführung

  • Multithreading-Grundlagen
  • Threading-Modelle
  • Single- und Multicoresysteme
  • Nebenläufigkeit und Parallelität

Threadmanagement

  • Erzeugen von Threads
  • Parameterübergabe
  • Thread-Identifikation
  • Hintergrund-Threads
  • Thread-Ablaufsteuerung
  • Beenden von Threads

Zeitmanagement

  • Absolute/relative Zeiten
  • Timeouts

Sichere Nutzung von Ressourcen

  • Sichere Initialisierung
  • Threadlokaler Speicher
  • Atomarer Speicherzugriff
  • Mutexe
  • Locks
  • Deadlocks
  • Condition Variable
  • Nichtblockierender Zugriff

Asynchrone Operationen

  • Futures
  • Promise
  • Packaged Task
  • async

Praktische Übungen

Nicht genau was Sie suchen?

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.