Dieser Workshop zu Multithreading mit modernem C++ wird die High-Level-Schnittstelle und die Low-Level-Details behandeln. In der High-Level-Schnittstelle werden Teilnehmer Threads, Locks und Mutexe, Thread-lokale Daten, Bedingungsvariablen und Tasks genau kennen lernen. Dies nicht nur in der Theorie, sondern vor allem in der Praxis. In den Low-Level-Details bekommen die Teilnehmer eine Idee, welche Probleme das C++-Speichermodell adressiert und was es heißt, lockfrei zu programmieren.
Die Teilnehmer sollten einen Rechner mit mindestens einem C++11-Compiler mitbringen.
Agenda:
ab 10:00 Registrierung und Begrüßungskaffee
11:00: Beginn
* Threads
- Erzeugung von Threads
- Lebenszeit von Threads
- Datenübergabe an Threads
* Von Threads geteilten Variablen
- Schutz mit Mutexen
- Schutz mit Locks
12:30-13:30 Uhr: Mittagspause
* Thread-sicheres Initialisieren von Daten
* Thread-lokale Daten
* Bedingungsvariablen
- Gefahren von Bedingungsvariablen
15:00-15:15 Uhr: Kaffeepause
* Promise und Future (Tasks)
- Vergleich von Threads und Tasks
- std::async
- std::packaged_task
- std:: promise und std::future
* Vergleich von Tasks und Bedingungsvariablen
16:30-16:45 Uhr: Kaffeepause
* Einblick in das C++ Speichermodell
* Atomare Datentypen
ca. 18 Uhr: Ende
Vorkenntnisse
C++ und Grundlagen Multithreading
Lernziele
Ziel des Workshops ist es, die High-Level-Threading-Schnittstelle zu verstehen und sicher anzuwenden. Dabei werden die Low-Level-Details wertvolle Dienste erweisen.
//
Rainer Grimm
@rainer_grimm
ist seit vielen Jahren als Softwarearchitekt, Team- und Schulungsleiter tätig. In seiner Freizeit schreibt er gerne Artikel zu den Programmiersprachen C++, Python und Haskell, spricht aber auch gerne auf Fachkonferenzen. Auf seinem Blog "Modernes C++" (http://www.grimm-jaud.de/index.php/blog) beschäftigt er sich intensiv mit seiner Leidenschaft C++. Seit einem Jahr steht er auf selbstständigen Beinen. Insbesondere das Vermitteln von Wissen zu modernem C++ ist ihm eine Herzensangelegenheit. Seine Bücher "C++11 für Programmierer", "C++" und "C++-Standardbibliothek" für die "kurz und gut"-Reihe sind beim Verlag O'Reilly erschienen. Sein englischsprachiges Werk "The C++ Standard Library" hat er direkt bei Leanpub veröffentlicht.