Thread-Programmierung in C++
Moderne Prozessoren besitzen mehr als einen Kern und können daher mehr als einen Befehl gleichzeitig ausführen. Programme, die von der vollen Leistungsfähigkeit moderner Prozessoren profitieren wollen, müssen daher so strukturiert werden, dass Aufgaben zeitgleich ausgeführt werden können. Wie dies in modernen C++-Anwendungen umgesetzt wird, lernen Sie in diesem Seminar. Dabei werden Sie in die Bibliothek Boost.Thread eingeführt, die in die kommende Version des C++-Standards aufgenommen wird. Sie lernen die Intel Threading Building Blocks kennen, die eine Strukturierung von Multithreaded-Code auf höherem Niveau ermöglichen. Der Einstieg in die Entwicklung von Multithreaded-Anwendungen geschieht jedoch über OpenMP - einem Standard, mit dem sehr einfach Code parallelisiert werden kann, und der von aktuellen Compiler-Versionen wie Visual C++ und GCC von Haus aus unterstützt wird.
Inhalte des Seminars
Einführung in die Entwicklung von Multithreaded-Anwendungen
- Multitasking und Multithreading
- Multithreading in C++ und dem C++-Standard
- Zugriff von mehreren Threads auf gemeinsam genutzte Daten
OpenMP
- Präprozessoranweisungen zum Parallelisieren von Code
- Threaderzeugung
- Thread-Synchronization
- Gültigkeitsbereiche für Variablen
- OpenMP-API-Funktionen
Boost.Thread
- Starten und Beenden von Threads
- Unterbrechungspunkte
- Thread-Synchronization mit Mutex, Bedingung und Barrier
- Locking-Mechanismen
- Einmaliger Funktionsaufruf pro Thread
- Thread Local Storage
Intel Threading Building Blocks
- Algorithmen
- Container
- Speicherallokation
- Synchronisation
- Task Scheduling
Termine / Kontakt
Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.
Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).
Die Fakten
- Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
- Zielgruppe: C++-Entwickler, die die Möglichkeiten schneller Multicore-Architekturen nutzen, sowie die Feinheiten der Synchronisation und Thread-Kommunikation kennen lernen möchten.
- Vorkenntnisse: Die Kurse ›Effektive Software-Entwicklung mit C++‹ und ›Standard Template Library (STL) und Standard C++ Library‹ oder vergleichbare Kenntnisse.
- Schulungsunterlagen: Deutschsprachige Unterlagen (Online-Bücher).
- Seminar-Software: Basis des Seminars sind die aktuellen Versionen der Boost- und Intel TBB-Bibliotheken und der Compiler Visual C++ oder GCC
Weiterführende Seminare
Das Seminar Effektive Software-Entwicklung mit C++ gibt wertvolle Hinweise zur effektiven Programmierung etwa mit Ausnahmen, Templates oder Smart Pointer. Effektive Softwareentwicklung bedeutet, dass Entwickler auf Standardbibliotheken zurückgreifen. In C++ sind das STL und Boost. Unsere Seminar Standard Template Library (STL) und Standard C++ Library gibt einen tiefen Einblick in die Bibliotheken und der Kurs C++ Design Patterns und Idiome gibt wertvolle Hinweise zum Programmieren im Großen. C++11: Neuerungen im C++-Standard liefert alle Updates zur neuesten C++-Version.