• [^] # Re: no future

    Posté par . En réponse au journal Pourquoi le modèle de concurrence de Node.js est bien. Évalué à 4 (+3/-0). Dernière modification le 08 juin 2026 à 13:15.

    Si je comprends bien comment Future (en Java) marche, il permet d'exécuter une fonction dans un autre thread (ou plus généralement d'une façon fournie par l'exécuteur), et ensuite d'obtenir son résultat avec la méthode Future.get(), qui est bloquante.

    Avec le modèle Reactor, ce n'est pas possible (ni souhaité) d'avoir une fonction bloquante (vu que ça bloquerait tous les traitements du thread unique, et, dans le cas de Future.get provoquerait un deadlock), donc il n'est pas possible d'avoir une fonction Future.get, et donc d'extraire le résultat du calcul du Future.

    On serait donc obligé d'utiliser le résultat de la Future sans l'extraire, par exemple avec CompletableFuture.thenApply, ce qui, si on utilise ça partout, serait particulièrement illisible, d'où l'intérêt d'avoir un sucre syntaxique comme async/await pour gérer ça plus simplement