Tools-in-Action30min
JCStress : Plonger au cœur de la concurrence et des systèmes distribués en Java
Ce talk présente JCStress, l’outil d’OpenJDK pour tester la sûreté des codes Java concurrents. Il montre comment écrire et exécuter des tests JCStress afin de détecter des bugs subtils liés à l’exécution multi-threadée, et fiabiliser ainsi les applications concurrentes et distribuées.
Riad MaouchiSociété Générale CIB
Christopher EtancelinSociété Générale
La concurrence en Java, c’est un peu comme la mécanique quantique : on croit comprendre… jusqu’à ce que tout parte en vrille.
Entre threads, caches CPU et mémoire volatile, certains comportements semblent impossible... jusqu'à ce qu'ils surviennent en production. Dans un système distribué, ces “glitches” locaux peuvent vite se transformer en un véritable cauchemar.
Comment savoir si votre code multi-threadé est vraiment sûr ?
C’est là qu’intervient JCStress, l’outil officiel d’OpenJDK.
Il pousse votre code dans ses retranchements en testant toutes les façons possibles dont les threads peuvent s’entrelacer, afin de révéler les bugs non décelables par les tests unitaires comme les problèmes de visibilité, d’ordre d’exécution ou d’atomicité.
Dans ce Tools in Action, vous verrez comment :
Entre threads, caches CPU et mémoire volatile, certains comportements semblent impossible... jusqu'à ce qu'ils surviennent en production. Dans un système distribué, ces “glitches” locaux peuvent vite se transformer en un véritable cauchemar.
Comment savoir si votre code multi-threadé est vraiment sûr ?
C’est là qu’intervient JCStress, l’outil officiel d’OpenJDK.
Il pousse votre code dans ses retranchements en testant toutes les façons possibles dont les threads peuvent s’entrelacer, afin de révéler les bugs non décelables par les tests unitaires comme les problèmes de visibilité, d’ordre d’exécution ou d’atomicité.
Dans ce Tools in Action, vous verrez comment :
- écrire et exécuter des tests JCStress,
- comprendre ce que la JVM fait réellement derrière vos threads,
- et appliquer ces principes pour fiabiliser vos applications concurrentes et distribuées.
Riad Maouchi
Riad est développeur Java depuis plus de vingt ans et a contribué à de nombreux projets dans des domaines variés tels que la grande distribution, la défense, les transports et la finance de marché. Passionné par la qualité du code et les bonnes pratiques, il accompagne actuellement la mise en place d’une culture d’ingénierie à la SGCIB, en promouvant le développement dirigé par les tests (TDD, BDD), l’application des standards du Clean Code et les principes du Domain Driven Design. Son objectif : aider les équipes à écrire un code robuste, maintenable et élégant, tout en cultivant l’excellence technique.
Christopher Etancelin
Développeur avec 20 ans d’expérience, j’aime bâtir des systèmes utiles, simples à maintenir et capables d’évoluer. Je travaille à la croisée de l’architecture applicative, de l’industrialisation et de l’accompagnement des équipes, avec une attention constante portée au Clean Code, au TDD et aux pipelines CI/CD. Mon approche est résolument pragmatique : comprendre le besoin, poser des bases saines et livrer vite sans sacrifier la qualité. J’aime aussi transmettre ce que j’ai appris au fil des projets pour aider les équipes à travailler dans un cadre plus clair et plus serein.
comments.speakerNotEnabledComments