Jörg Hettel

11.12.2019

12:30 - 13:15

Plateau 2

Session

  IT-Tage 2021
  •  Live-Streaming von über 200 Vorträgen in 18 Subkonferenzen.
  •  365 Tage On-Demand-Zugriff auf 260 Vortragsvideos und ein umfangreiches Archiv an Informationen der Konferenz.
  •  Weitere 7 Remote-Konferenzen in 2022.

Die meisten klassischen Programmiersprachen nutzen zur Realisierung eines Programmflusses das Thread-Konzept. Parallele Programmierung auf dieser Basis ist im wesentlichen Multithread-Programmierung, die viele Fallen hat und mit großen Schwierigkeiten verbunden ist. Um parallele die Programmierung praxistauglich zu machen, wurde deshalb peu à peu abstrakte "thread-freie" Konzepte in die Programmiersprachen mit aufgenommen. Parallelität kann nun durch die Verwendung von "Concurrency Patterns" modelliert und einfacher umgesetzt werden.

In dem Vortrag werden die von Java unterstützten Concurrency Patterns vorgestellt und an Beispielen erläutert. So kann z. B. Task-Parallelität mit CompletableFutures umgesetzt werden. Datenparallelität wird, je nachdem ob synchron oder asynchron, durch die Verwendung von parallelen oder reaktiven Streams erreicht. Das CSP-Paradigma, wie es z. B. bei Go verwendet wird, kann über den Einsatz von BlockingQueues imitiert oder das zu CSP verwandte Aktor-Modell über Bibliotheken integriert werden. Abschließend wird noch auf das Konzept der designierten Coroutinen (Fibers) eingegangen und wie die massive Parallelität moderner GPGPUs genutzt werden kann.