- Überblick über Virtual Threads
- Was sind Virtual Threads (Loom-Projekt)?
- Platform Threads vs. Virtual Threads – Blocking?
- Funktionsweise von Platform Threads
- Funktionsweise von Virtual Threads
- Regeln & Best Practices
- Regel 1 – Threads erstellen
- Regel 2 – CompletableFuture nicht verwenden
- Regel 2 – Virtual Threads verwenden
- Regel 3 – Keinen Thread Pool verwenden
- Regel 3 – newThreadPerTaskExecutor verwenden
- Regel 4 – FixedThreadPool nicht für Concurrency verwenden
- Regel 4 – Semaphore für Concurrency verwenden
- Regel 5 – ScopedValue verwenden
- Regel 6 – ReentranceLock statt
synchronized verwenden
- Regel 7 – Structured Concurrency umsetzen
- Regel 8 – Virtual Threads testen
- Spring Boot mit Virtual Threads
- Spring Boot MVC mit Virtual Threads
- Asynchrone Tasks in Spring Boot MVC
- RestController mit Virtual Threads verwenden
- Änderung von Legacy-Code
- Virtual Threads in bestehenden Systemen anwenden
2 Kommentare
In JDK 24 wurde
synchronizedso angepasst, dass es kein Pinning mehr verursacht, daher wird auch Regel 6 ungefähr ab dem nächsten LTS voraussichtlich nicht mehr nötig sein.Scoped Value und Structured Concurrency befinden sich noch im „Preview“-Stadium, daher dürfte es noch eine Weile dauern, bis Virtual Threads produktiv einsetzbar sind.