Maison  >  Article  >  Java  >  Java Concurrency Introduction détaillée au parallélisme

Java Concurrency Introduction détaillée au parallélisme

黄舟
黄舟original
2017-02-28 10:26:591395parcourir

Le parallèle et la concurrence sont souvent utilisés dans les programmes multithread. Mais que signifient exactement le parallélisme et la concurrence ? eh bien, ils sont pareils ou quoi ?

La réponse la plus simple est « non ». Ce ne sont pas les mêmes termes, même s’ils se ressemblent beaucoup en surface. Il m'a également fallu du temps pour découvrir et comprendre les différences entre eux. J'ai donc décidé d'ajouter un article à leur sujet dans ce tutoriel.

Concurrence

La concurrence signifie qu'une application exécute plus d'une tâche en même temps. Si l'ordinateur ne dispose que d'un seul processeur, l'application ne peut pas exécuter plus d'un programme à la fois, mais au sein de l'application, plusieurs programmes peuvent être exécutés à la fois. Il ne peut pas terminer complètement une tâche avant de commencer la suivante.

.

Parallèle

Parallèle signifie que l'application divise ses tâches en petites sous-tâches qui peut être exécuté en parallèle, par exemple sur plusieurs processeurs en même temps.


Comparaison détaillée de la concurrence et du parallélisme

Comme vous pouvez le voir, la concurrence est comment une application gère plusieurs tâches. Les applications peuvent exécuter des tâches de manière séquentielle ou exécuter plusieurs tâches simultanément.

En d’autres termes, le parallélisme concerne la façon dont une application gère une seule tâche. L'application peut exécuter la tâche en continu du début à la fin, ou diviser la tâche en plusieurs sous-tâches pouvant être exécutées en parallèle.

Comme vous pouvez le constater, une application peut être concurrente, mais pas parallèle. Cela signifie qu’il effectue plus d’une tâche en même temps, mais cette tâche ne peut pas être divisée en sous-tâches.

Une application peut également être parallèle plutôt que concurrente. Cela signifie que l'application exécute une tâche en même temps et que la tâche est séparée en plusieurs sous-tâches à exécuter en parallèle.

De plus, une application ne peut être ni concurrente ni parallèle. Cela signifie que l'application ne fonctionne que sur une seule tâche à la fois et que la tâche n'est pas divisée en sous-tâches.

Enfin, une application peut être à la fois simultanée et parallèle. Dans ce cas, elle peut travailler sur plusieurs tâches en même temps, ou elle peut séparer chaque tâche en plusieurs sous-tâches à exécuter en parallèle. Cependant, certains des avantages de la concurrence et du parallélisme peuvent être perdus dans ce scénario, car le processeur de l'ordinateur est déjà très occupé par la concurrence ou le parallélisme. La combinaison des deux peut entraîner un léger gain de performances, voire une perte de performances. Avant d’adopter aveuglément un modèle de concurrence, vous devez confirmer l’analyse et la mesure.


Ce qui précède est une introduction détaillée de la concurrence Java au parallélisme. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
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
Article précédent:Java même filArticle suivant:Java même fil