Le projet Loom veut simplifier le modèle de programmation des systèmes asynchrones. Le moyen est de permettre le blocage du thread qui réalise les entrées / sorties sans dégrader les performances de l'application. Cela repose sur l'utilisation de threads virtuels, que Loom nous a apporté en Java 21. Alors que les threads Java classiques sont des enveloppes sur les threads de l'OS, les threads virtuels sont de simples objets Java, que l'on peut créer à la demande. Ils posaient toutefois des problèmes de performances en 21 lors de l'exécution d'un appel I/O dans un bloc synchronisé, point qui a été résolu en Java 24. Outre les threads virtuels, Java 21 nous a apporté deux fonctionnalités en preview : les Scoped Values, qui visent à remplacer l'ancienne API ThreadLocal, et l'API Structured Concurrency, qui permet d'organiser les tâches asynchrones d'une application. L'API Scope Value est finale en Java 25. L'API Structured Concurrency quant à elle a été remaniée en 25 et est toujours en preview en 26. Nous présenterons ces trois éléments en détails, avec des exemples et des patterns de code, et aborderons ce que l'on sait des évolutions futures du projet Loom.