Virtual Threads in Java: der Skalierbarkeits- und Perfomance-Deep-Dive
Virtual Threads versprechen, Performance und Skalierbarkeit von Java-Applikationen massiv zu steigern, ohne das Programmiermodell gegenüber dem der herkömmlichen Threads zu verändern. Bestehender Code muss daher im Idealfall kaum angepasst werden. Aber wie so oft steckt der Teufel im Detail.
Technologischer Hintergrund:
Virtual Threads beziehen ihren Skalierbarkeitsvorteil aus der Fähigkeit, bei blockierenden Aufrufen den Betriebssystem-Thread freizugeben. Auf diese Weise können unzählige Client Requests gleichzeitig bedient werden, ohne an die Ressourcengrenzen von Betriebssystem oder Hardware zu stoßen.
Anwendungsarchitektur:
Die versprochene Performance-Verbesserung kann jedoch nur unter bestimmten Voraussetzungen erzielt werden: Die Softwarearchitektur muss geeignet sein, denn Applikationen mit viel I/O profitieren stärker als CPU-intensive Programme. Die verwendeten Frameworks und Bibliotheken müssen Virtual Threads unterstützen, um z.B. die Datenbank effizient zu bedienen, und es gibt Sonderfälle zu beachten, insbesondere bei der Synchronisation.
In diesem Deep Dive lernen Sie, diese Herausforderungen geschickt zu meistern und die folgenden Fragen für Ihr Projekt zu beantworten:
- Wie kann ich Performance und Skalierbarkeit meiner Applikation mit Virtual Threads steigern?
- Wie muss ich die Architektur meiner Applikation strukturieren, um von Virtual Threads zu profitieren?
- Was muss ich bei der Migration eines bestehenden Systems beachten?
Programmierübungen und interaktive Aufgaben am Whiteboard vertiefen die das Gelernte.
Maximal 30 Teilnehmende
Zielpublikum: Entwickler:innen, Architekt:innen, Entscheider:innen von Anwendungen mit Skalierbarkeitsanforderungen
Voraussetzungen: Java-Grundkenntnisse
Schwierigkeitsgrad: fortgeschritten
Marwan ist Softwarearchitekt für Realtime-Systeme in der Siemens AG und unterrichtet seit über einem Jahrzehnt Parallele Programmierung in unterschiedlichen Programmiersprachen und Umgebungen.