Thread-Programmierung in C++
Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
Kursziele
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++ 2008 und GCC 4.2 von Haus aus unterstützt wird.
Zielgruppe
C++-Entwickler, die die Möglichkeiten schneller Multicore-Architekturen nutzen, sowie die Feinheiten der Synchronisation und Thread-Kommunikation kennen lernen möchten.Kursvoraussetzungen
Die Kurse ›Effektive Software-Entwicklung mit C++‹ und ›Standard Template Library (STL) und Standard C++ Library‹ oder vergleichbare Kenntnisse.Seminarinhalte
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
Schulungsunterlagen
Deutschsprachige Unterlagen (Online-Bücher).
Eingesetze Seminar-Software
Basis des Seminars sind die aktuellen Versionen der Boost- und Intel TBB-Bibliotheken und der Compiler Visual C++ oder GCC
Schlagwörter
Weiterführende Seminare
Das Seminar Effektive Software-Entwicklung mit C++ gibt welches 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 Seminare Standard Template Library (STL) und Standard C++ Library und Boost C++-Bibliotheken geben einen tiefen Einblick in die Bibliotheken und der Kurs C++ Design Patterns und Idiome gibt wertvolle Hinweise zum Programmieren im Großen.
![Zu einem Bookmark-Anbieter hinzufügen [Addthis]](../../images/bookmarks/addthis.png)
![Zu Google Bookmarks hinzufügen [Google Bookmarks]](../../images/bookmarks/google.png)
![Zu Yahoo! Bookmarks hinzufügen [Yahoo! Bookmarks]](../../images/bookmarks/yahoo.png)
![Zu Delicius hinzufügen [Delicius]](../../images/bookmarks/delicious.png)
![Zu Mister Wong hinzufügen [Mister Wong]](../../images/bookmarks/misterwong.png)