Maison > Java > javaDidacticiel > Différence entre les flux parallèles et séquentiels en Java

Différence entre les flux parallèles et séquentiels en Java

Barbara Streisand
Libérer: 2025-02-07 11:53:10
original
759 Les gens l'ont consulté

Difference between Parallel and Sequential Streams in Java

Java 8 présente Stream, situé dans le package java.util.stream. Le flux est une séquence d'objets, similaire à un tableau ou à une collection, et prend en charge une variété de méthodes et d'opérations d'agrégation, y compris le filtrage, la cartographie, la réduction, la limitation, l'appariement et la recherche. Ces opérations ne modifient pas la source de données d'origine, mais créent un nouveau flux pour le traitement. Les flux sont principalement divisés en deux types: flux séquentiel et flux parallèle. Cet article se concentrera sur les différences entre les deux.

Qu'est-ce que le flux séquentiel?

Les flux séquentiels utilisent un seul thread pour traiter les données dans le pipeline. Les objets du flux séquentiel sont situés dans le même système de traitement et disposés dans l'ordre, ils ne sont donc pas traités à l'aide d'un système multi-core.

Qu'est-ce que le flux parallèle?

Les flux parallèles utilisent des processeurs multicœurs pour améliorer les performances du programme. Le code est divisé en plusieurs flux via une méthode de flux parallèle qui est exécuté en parallèle sur différents noyaux. Les résultats finaux sont affichés après la fusion. Étant donné que l'exécution n'est pas contrôlée par le développeur, les résultats peuvent être désordonnés. Les flux parallèles peuvent être utilisés de la manière suivante:

    L'interface
  • Collection contient la méthode parallelStream() pour créer des flux parallèles.
  • L'interface
  • BaseStream contient la méthode parallel() qui peut être utilisée pour convertir des flux séquentiels en flux parallèles.

La différence entre l'écoulement séquentiel et l'écoulement parallèle

Le tableau suivant résume les principales différences entre les flux séquentiels et les flux parallèles en Java:

顺序流 并行流
在计算机的单个内核上执行。 在计算机的多个内核上执行。
性能较慢。 性能较快。
执行过程中保持顺序。 执行过程中不保证顺序。
一次只能进行单个迭代。 由于在多个内核上执行,可以进行多个迭代。
每个迭代必须等待前一个迭代完成才能执行。 如果所有内核都繁忙,则流必须等待;否则,它们将同时执行而无需等待。
出错概率较低。 出错概率较高。
与平台无关。 依赖于平台。

Conclusion

Le flux en Java est principalement divisé en flux séquentiels et des flux parallèles. Les flux séquentiels effectuent des objets en séquence, avec des résultats ordonnés, exécutés à l'aide d'un seul noyau de l'ordinateur, des performances lentes, mais pas liées à la plate-forme. Les flux parallèles sont exécutés à l'aide de plusieurs cœurs de l'ordinateur, et les performances sont rapides, mais le résultat est hors service.

FAQ du flux séquentiel et parallèle

1.

Le streaming séquentiel est lié à la plate-forme, car il n'utilise qu'un seul noyau pour exécuter du code. Les flux parallèles utilisent plusieurs noyaux pour exécuter du code, ils dépendent donc de la plate-forme.

2.

Les flux parallèles sont plus sujets aux erreurs car ils fonctionnent sur plusieurs cœurs de l'ordinateur et les résultats sont hors service. La probabilité d'erreurs de streaming séquentielles est plus faible car elle n'utilise qu'un seul noyau pour exécuter du code.

3.

Dans les flux séquentiels, une seule itération peut être effectuée à la fois. La prochaine itération doit attendre que l'itération actuelle se termine. Dans les flux parallèles, les itérations fonctionnent simultanément sur différents noyaux. Si tous les grains sont occupés, l'itération doit attendre.

4.

Les flux séquentiels restent en séquence pendant l'exécution, car il n'utilise qu'un seul noyau, et chaque itération doit attendre que l'itération actuelle termine l'exécution.

5.

Le streaming parallèle fonctionne plus rapidement car il s'exécute à l'aide de plusieurs cœurs. Les flux séquentiels utilisent un seul noyau, donc les performances sont plus lentes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Impossible d'installer Java
Depuis 1970-01-01 08:00:00
0
0
0
Java peut-il être utilisé comme backend du Web ?
Depuis 1970-01-01 08:00:00
0
0
0
Installer JAVA
Depuis 1970-01-01 08:00:00
0
0
0
Aide : Données chiffrées JAVA Décryptage PHP
Depuis 1970-01-01 08:00:00
0
0
0
Est-ce en langage Java ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal