Java 8 : Les nouveautés

Comprendre les flux parallèles

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Les flux parallèles rendent possible la répartition des opérations appliquées sur le flux, et ce sur des threads différents.

Transcription

Dans cette vidéo, nous allons évoquer la possibilité de réaliser des flux parallèles. Alors flux parallèles, ça signifie que vous allez pouvoir traiter les opérations sur les flux, sur plusieurs threads, dont vous n'avez pas spécialement d'ailleurs à spécifier la diversité ou la mise en œuvre. En fait on va tout simplement automatiquement répartir les opérations sur les flux qui sont disponibles. Simplement donc sur votre flux, ce qu'il faut récupérer, c'est non pas un Stream mais un parallèleStream. Ici évidemment il veut l'import, ça ce n'est pas un problème. ParallèleStream donc, pour évoquer cette répartition, eh bien je vais appliquer une petite fonction forEach, sachant que pour chaque chaîne de caractères de mon tableau, je vais, System.out.println, faire afficher la chaîne de caractères, donc (s+ " : " par exemple, et je vais faire afficher le nom du thread courant, thread.currentthread().getName. Voilà, je vais simplement faire afficher le nom du thread courant. Petite exécution de mon application. Alors ce qu'on voit ici donc c'est que xavier est traité par le main, fabien est traité par le 1 et dimitri est traité par le 2. Alors ces worker en fait, sont disponibles en fonction de votre machine. Ce sont les ForkJoinPool, ce sont des pools de threads qui sont mis en œuvre en fonction des possibilités de la machine, des paramétrages de la JVM sur votre machine et du besoin, tout simplement. Si nous avions plus de chaînes de caractères, il pourrait par exemple ne pas y avoir assez de threads, donc on retrouverait le même nombre de threads régulièrement. Donc ici on pourrait effectivement continuer. Alors le truc, c'est que je ne sais pas combien il y a de threads sur cette machine, disponibles. Si j'exécute encore, je vois qu'apparemment il ne se gêne pas pour avoir ici des worker jusqu'à 4. Est-ce que je peux aller jusqu'à 5, rajouter un "toto" ? Ici on a un worker jusqu'à 5. Alors pour savoir combien il y a de threads possibles, ou du moins comment c'est configuré sur la machine, je propose de faire appel à ForkJoinPool. Donc le pool de threads, c'est un truc à récupérer, ForkJoinPool. commonPool(); voilà. Vous récupérez votre pool de threads et vous allez faire afficher le nombre de threads possibles mis en œuvre. Donc ici println et (pool.Parallelism()); Là je vais avoir une idée du nombre de threads sur lequel je peux travailler, ici 7, voilà. Donc jusqu'à 7 en fait, je vais avoir des noms de threads différents, puis ensuite on va récupérer les mêmes threads. Ҫa c'est les multitâches appliquées aux flux et aux opérations sur les flux. Alors voyons ça. Effectivement 1, 3, enfin vous n'êtes pas responsable en fait de la répartition des traitements. Voilà le main à utiliser trois fois. C'est ça donc le Stream parallèle. Donc vous n'êtes pas responsable de la répartition des opérations sur les threads et en fonction du paramétrage de votre poste, des possibilités de votre poste, vous allez vous retrouver à avoir des opérations déclenchées sur tel et tel thread. Alors ça marchera tout particulièrement bien évidemment sur des opérations qui peuvent être paralysées, dans la mesure où il n'y a pas de rapport entre les différents items que vous traitez.

Java 8 : Les nouveautés

Découvrez les nouveautés introduites par la version 8 de Java. Voyez les expressions lambda, les références de méthodes, les méthodes par défaut dans les interfaces, etc.

1h44 (21 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
Spécial abonnés
Date de parution :17 août 2015

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !