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.

[Addthis] [Google Bookmarks] [Yahoo! Bookmarks] [Delicius] [Mister Wong]

 

[Nach oben]