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.