Mehrprozessorsysteme, Hyperthreading und Multicore-CPUs lassen sich nur mit mehreren Programmen oder mehreren Threads in einem Programm ausnutzen. Den klassischen Support für Threads erweitert die Parallel Programming Library (PPL), die mit Delphi XE7 eingeführt wurde, erheblich. Für ältere Delphi Versionen und die Windows-Plattform steht als Alternative die Open-Source-Bibliothek OmniThreadLibrary zur Verfügung, welche den Umgang mit mehreren Threads von der Kommunikation bis zum Exception Handling vereinfachen kann und ebenfalls ein Parallelisierungsframework bietet.

Der Workshop gibt eine Einführung in die Verwendung von einfachen Thread-Klassen und das Design von Threads und zeigt die Unterschiede zu Task der PPL oder OTL auf. Es wird gezeigt, was, wann und wie synchronisiert werden muss um Deadlocks oder Abstürze zu verhindern. Die verschiedenen Synchronisationselemente der API werden ebenso vorgestellt, wie Delphis Hilfsklassen von TMonitor bis TThreadedQueue.

Letzter Termin

05.04.2017

Nächster Termin

Steht noch nicht fest.

Agenda

  • Einführung in Multithreading
  • Thread-Klasse in Delphi
  • Synchronisationsobjekte und deren Einsatz
  • Delphi Parallel Programming Library (PPL)
  • Tasks und Futures versus Threads
  • ParalellFor, Fork, Join
  • Konzepte der OmniThreadlibrary (OTL)
  • OTL einsetzen
  • Vergleich von OTL und PPL

Teilnehmervoraussetzungen

  • Sicherer Umgang mit Delphi
  • Grundkenntnisse objektorientierter Entwicklung

Zusätzliche Hinweise

Zum direkten Nachvollziehen der Beispiele und für Übungen wird ein Laptop mit einer Delphi-Version zwischen mindestens Delphi XE2 und der aktuellen Delphi Version empfohlen. Als Betriebssystem kann Windows 7/8/10 verwendet werden.