Beschreibung
In diesem praxisorientierten Seminar wird die parallele Programmierung in Java von Grund auf erschlossen. Sie werden dadurch in die Lage versetzt, effiziente, deterministische parallele Programme in Java eigenständig zu entwerfen, und Sie lernen, die richtigen Technologien und Architekturen für Ihren Anwendungsfall auszuwählen.
Im Laufe der Jahre sind stetig neue parallele APIs ins JDK aufgenommen worden. Sie lernen im Seminar alle wichtigen APIs für die Parallelität in Java kennen, und Sie verstehen im Detail, welche technologischen Paradigmen diesen jeweils zugrunde liegen.
Sie programmieren im Seminar zahlreiche Übungen, um die Tricks und Schwierigkeiten der Parallelität praktisch zu erfahren. So sehen Sie, wie man mit Threads Algorithmen beschleunigt und lernen dabei auch die Gefahren einer unüberlegten Parallelisierung kennen. Sie Setzen Fork-Join-Tasks ein und erkennen an konkreten Beispielen, wo diese den klassischen Threads überlegen sind. Mit Java Parallel-Streams lernen Sie ein elegantes API für die transparente parallele Datenverarbeitung einzusetzen.
Virtual Threads sind der neue Ansatz im JDK, um hochskalierbare Systeme zu bauen. Sie sehen, was Sie bei einem Umstieg von klassischen Platform-Threads auf Virtual-Threads beachten müssen, welche Chancen damit verbunden sind, und wo Fallstricke zu beachten sind.
Mit Reactive-Streams lassen sich verteilte Systeme mit weitgehend transparenter Parallelität und automatischer Flusskontrolle konzipieren, Sie lernen die Grundkonzepte und den Einsatz kennen.
SIMD Instructions und GPU-Parallelisierung sind hardwarespezifische Ansätze, die insbesondere vor dem Hintergrund des KI Booms nun auch in Java Verbreitung finden, sie lernen diese einzuschätzen und anzuwenden.