La création de processus est "coûteuse", car elle doit configurer un nouvel espace mémoire virtuel complet pour le processus avec son propre espace d'adressage. "cher" signifie que cela prend beaucoup de temps CPU.
Les threads n'ont pas besoin de faire cela, il suffit de changer quelques pointeurs, donc c'est beaucoup moins cher que de créer un processus. La raison pour laquelle les threads n'ont pas besoin de cela est parce qu'ils s'exécutent dans l'espace d'adressage, et dans la mémoire virtuelle du processus parent.
Chaque processus doit avoir au moins un thread. Donc, si vous y réfléchissez, créer un processus signifie créer le processus ET créer un fil de discussion. Évidemment, créer seulement un thread prendra moins de temps et de travail par l'ordinateur. En outre, les threads sont "légers" car les threads peuvent interagir sans nécessiter de communication inter-processus. Passer d'un thread à l'autre est moins coûteux que de passer d'un processus à un autre (encore une fois, déplacer quelques pointeurs). Et la communication inter-processus nécessite une communication plus coûteuse que les threads.
En conservant la création de processus et votre système d'exploitation, vous verrez combien il y a de frais généraux pour créer un processus. –
@Non Remboursements Aucun retour: Et vous trouverez qu'il diffère considérablement entre les systèmes d'exploitation. –
@Non Remboursements Aucun retour: quelle est la surdécouverte de la synchronisation du cache entre les threads sur une machine multicœur ou la surcharge du changement de contexte et l'enregistrement de l'état de la pile et du jeu de registres? – zebrabox