Introduction aux Virtual Threads de Java 21 [48 diapositives]
(drive.google.com)- Vue d’ensemble des Virtual Threads
- Que sont les Virtual Threads (projet Loom)
- Platform Threads vs Virtual Threads - blocage ?
- Fonctionnement des Platform Threads
- Fonctionnement des Virtual Threads
- Règles et bonnes pratiques
- Règle 1 - Créer des threads
- Règle 2 - Ne pas utiliser
CompletableFuture - Règle 2 - Utiliser les Virtual Threads
- Règle 3 - Ne pas utiliser de pool de threads
- Règle 3 - Utiliser
newThreadPerTaskExecutor - Règle 4 - Ne pas utiliser
FixedThreadPoolpour la concurrence - Règle 4 - Utiliser
Semaphorepour la concurrence - Règle 5 - Utiliser
ScopedValue - Règle 6 - Utiliser
ReentranceLockau lieu desynchronized - Règle 7 - Mettre en œuvre la concurrence structurée
- Règle 8 - Tester les Virtual Threads
- Spring Boot avec les Virtual Threads
- Spring Boot MVC avec les Virtual Threads
- Tâches asynchrones Spring Boot MVC
RestControllerutilise les Virtual Threads
- Modification du code legacy
- Appliquer les Virtual Threads à un système existant
2 commentaires
Dans JDK 24,
synchronizeda été modifié pour ne plus provoquer de pinning, donc la règle 6 ne sera probablement plus nécessaire d’ici la prochaine LTS.Scoped Value et Structured Concurrency sont encore au stade de « préversion », donc il semble qu’il faudra encore attendre un certain temps avant que les Virtual Threads soient prêts pour un usage en production.