2 votes

Java 8 ParallelStream dans un conteneur d'application Web

Il s'agit davantage d'une question de connaissances générales que d'un problème de code.

Je peux utiliser le code suivant pour créer un flux parallèle :

// create List, assign to variable myList
Stream<String> stream = myList.parallelStream();

Cependant, dans le monde des applications web, la plupart des recommandations préconisent de laisser le conteneur (JBoss, Weblogic, etc.) gérer les threads et les pools de threads pour vous. Cela m'amène à poser la question suivante : est-il considéré comme une mauvaise pratique d'utiliser des threads et des pools de threads dans les applications web ? parallelStream() à l'intérieur d'une application web ?

Jason

1voto

GhostCat Points 83269

Je pense que la réponse est dépend de : tout d'abord, vous parlez de différents niveaux d'abstraction. C'est une autre chose de créer votre propre thread dans votre code et de le faire agir, ou de savoir que votre conteneur fournit des pools de threads et d'autres concepts de ce type.

Si votre programme de conteneur de Web App a utilisé un threading/parallélisme explicite avant Java8 était en train d'arriver (comme faire du travail natif en utilisant la classe Thread ou ExecutorService de Java) ... alors bien sûr vous pouviez aller de l'avant et changer ce code pour utiliser des flux parallèles. Vous ne feriez pas grand-chose d'autre qu'avant ; vous utiliseriez simplement des couches d'abstraction quelque peu améliorées.

D'un autre côté, si vous avez écrit vos programmes de manière à ce que l'infrastructure du conteneur soit responsable de tous les aspects du "threading", alors vous resterez probablement fidèle à ce modèle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X