java / expert
Snippet
Strukturierte Nebenläufigkeit mit StructuredTaskScope
Structured Task Scope (Preview in Java 21+) behandelt Gruppen zusammengehöriger Aufgaben, die in verschiedenen Threads laufen, als eine einzige Arbeitseinheit. ShutdownOnFailure stellt sicher, dass beim Fehlschlagen eines Subtasks alle anderen verwandten virtuellen Threads automatisch abgebrochen werden, was 'verwaiste' Threads verhindert und die Observability verbessert.
snippet.java
1
2
3
4
5
6
7
8
try (var scope = new StructuredTaskScope.ShutdownOnFailure()) {Supplier<String> user = scope.fork(() -> fetchUser(id));Supplier<Integer> order = scope.fork(() -> fetchOrder(id));scope.join().throwIfFailed();return new Dashboard(user.get(), order.get());}
Erklärung
1
new StructuredTaskScope.ShutdownOnFailure()
Erstellt einen Scope, der alle Forks beendet, wenn ein einzelner Fork fehlschlägt.
2
scope.fork(() -> ...)
Startet einen Subtask in einem neuen virtuellen Thread innerhalb des aktuellen Scopes.
3
scope.join().throwIfFailed()
Wartet auf den Abschluss aller Forks und gibt die erste aufgetretene Exception weiter.