C++ Multithreading
Zielgruppe
Vorkenntnisse
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
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