Completablefuture

Dev back

Mastering Concurrency in Java: Lessons I Learned the Hard Way

Cet article traite de la maîtrise de la concurrence en Java, en partageant des leçons tirées de l'expérience de l'auteur. Il aborde les défis rencontrés lorsqu'on passe d'applications mono-thread à des systèmes multi-thread pour gérer efficacement des tâches concurrentes. Les concepts de bases comme les threads, Runnable, Callable sont expliqués, ainsi que des outils avancés tels que les locks et les sémaphores. L'auteur souligne également l'importance de la synchronisation et les problèmes de concurrence tels que les conditions de course et les blocages. Enfin, il met en avant l'utilisation de CompletableFuture pour simplifier la gestion des tâches asynchrones, améliorant ainsi la fiabilité et la scalabilité des systèmes construits.

Dev back

⚡ Non-Blocking & Async: The Future Has No wait()

Dans le développement backend Java moderne, la programmation non-bloquante et asynchrone est essentielle pour la performance. Cet article décompose les concepts de base jusqu'à l'architecture de niveau entreprise, examinant des outils comme CompletableFuture, l'API Flow de Java, et des bibliothèques réactives telles que Project Reactor et RxJava. Une analogie avec un restaurant illustre la différence entre I/O bloquant et non-bloquant.

Dev back

Improving API Performance with Java’s CompletableFuture: A Practical Approach

Cet article traite de l'amélioration des performances des API en utilisant CompletableFuture de Java pour effectuer des appels asynchrones plutôt que synchrones, ce qui réduit considérablement le temps de réponse dans un contexte de développement d'API. Un POC est présenté, comparant les performances d'API synchrones et asynchrones, où l'API asynchrone affiche un temps de réponse significativement plus court malgré des latences simulées. La structure de l'application comprend des couches de référentiel, de service et de façade, illustrant les différences d'approche dans la gestion des appels API.