Maison  >  Article  >  Java  >  La différence entre les threads et les processus Java

La différence entre les threads et les processus Java

(*-*)浩
(*-*)浩original
2019-11-09 14:02:102947parcourir

La différence entre les threads et les processus Java

Qu'est-ce qu'un processus et qu'est-ce qu'un fil conducteur ? (Apprentissage recommandé : Cours Java )

Processus : L'unité de base qui attribue et gère les ressources pendant le processus d'exécution est un concept dynamique, les ressources du système informatique compétitif sont l'unité de base.

Thread : C'est une unité d'exécution du processus et une entité de planification interne du processus. Une unité de base qui fonctionne indépendamment, plus petite qu'un processus. Les threads sont également appelés processus légers.

Un programme doit avoir au moins un processus, et un processus doit avoir au moins un thread.

La différence entre les threads de processus

1. Espace d'adressage : les threads d'un même processus partagent l'espace d'adressage de ce processus, tandis que les processus ont des espaces d'adressage indépendants.

2. Propriété des ressources : les threads d'un même processus partagent les ressources de ce processus, mais les ressources entre les processus sont indépendantes.

3. Après le crash d'un processus, cela n'affectera pas les autres processus en mode protégé, mais si un thread plante, le processus entier mourra. Le multi-processus est donc plus robuste que le multi-threading.

4. Lors du changement de processus, cela consomme beaucoup de ressources et est très efficace. Ainsi, lorsqu’il s’agit de changements fréquents, il est préférable d’utiliser des threads plutôt que des processus. De même, si des opérations simultanées doivent être effectuées en même temps et partager certaines variables, vous ne pouvez utiliser que des threads et non des processus.

5. Processus d'exécution : Chaque processus indépendant possède une entrée pour l'exécution du programme, une séquence d'exécution séquentielle et une entrée pour le programme. Cependant, les threads ne peuvent pas s'exécuter indépendamment et doivent exister dans le programme d'application, et le programme d'application fournit un contrôle d'exécution de plusieurs threads.

6. Les threads sont l'unité de base de la planification du processeur, mais les processus ne le sont pas.

7. Les deux peuvent être exécutés simultanément.

Un thread n'appartient qu'à un seul processus, mais un processus peut avoir plusieurs threads, mais au moins un thread

Les ressources sont allouées à un processus, toutes dans le même processus, les threads partagent toutes les ressources du processus.

Avantages et inconvénients :

La surcharge d'exécution des threads est faible, mais elle n'est pas propice à la gestion et à la protection des ressources. Les threads peuvent être exécutés sur des machines SMP (systèmes à double processeur).

La surcharge d'exécution des processus est élevée, mais elle permet de très bien gérer et protéger les ressources. Les processus peuvent être avancés entre les machines.

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!

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