Project Loom: Virtual Threads, Structured Concurrency, Scoped Values

Für die Nebenläufigkeit in Java gibt es zwei Optionen:

  • einfacher, synchroner, blockierender Code mit begrenzter Skalierbarkeit, der gut linear zur Laufzeit nachzuvollziehen ist, oder
  • komplexe, asynchrone Bibliotheken mit hoher Skalierbarkeit, die schwieriger zu handhaben sind
Projekt Loom möchte die besten Aspekte dieser beiden Ansätze zusammenbringen und Entwicklerinnen und Entwicklern zur Verfügung stellen.

Michael geht kurz auf die Geschichte und Herausforderungen von Nebenläufigkeit in Java ein, bevor der Vortrag in die Ansätze von Loom eintaucht und etwas hinter die Kulissen der Implementierung schaut. Um so viele Threads vernünftig zu managen, braucht es etwas Struktur. Dafür gibt es Vorschläge für "Structured Concurrency", die der Vortrag ebenfalls betrachtet.

Einige Beispiele und Vergleiche zum Test von Loom runden den Vortrag ab.

Project Loom ist in Java 21 als öffentliches Feature enthalten, somit kann jeder testen, wie gut es mit unseren Anwendungen und Bibliotheken funktioniert.

Spoiler: Ziemlich gut.

Speaker

 

Michael Hunger
Michael Hunger beschäftigt sich seit mehr als 30 Jahren leidenschaftlich mit Softwareentwicklung. In den letzten 13 Jahren hat er an der Open-Source-Graphdatenbank Neo4j gearbeitet und dabei viele Rollen ausgefüllt, zuletzt als Leiter der Neo4j Labs. In der Neo4j-Community und im Ökosystem unterstützt er viele OSS-Projekte. Als Entwickler entdeckt Michael viele Aspekte von Programmiersprachen, lernt jeden Tag neue Dinge, nimmt an spannenden und ehrgeizigen Open-Source-Projekten teil und schreibt Bücher und Artikel über Software. Michael hat auf zahlreichen Konferenzen gesprochen und mehrere davon mitorganisiert. Dank seiner Bemühungen wurde er in das JavaChampions-Programm aufgenommen. Michael hilft Kindern, das Programmieren zu lernen, indem er wöchentliche Programmierkurse für Mädchen an örtlichen Schulen leitet.

betterCode-Newsletter

Sie möchten über die betterCode() Java und weitere unserer betterCode()-Events auf dem Laufenden gehalten werden?

 

Anmelden