Maison >développement back-end >Tutoriel Python >La différence entre multi-threading et multi-processus en python
Les différences entre multi-processus et multi-threading en Python sont : les threads doivent être exécutés dans le processus, un processus peut contenir plusieurs threads ; les processus peuvent partager le même espace d'adressage et les processus partagent des adresses physiques, la création de threads est simple. , et les processus doivent traiter le clonage, etc.
Aujourd'hui, je partagerai les connaissances et les différences entre le multi-processus et le multi-threading en Python. Ensuite, je le présenterai en détail dans l'article, qui en a certains. valeur de référence. J'espère que cela sera utile à tout le monde
[Cours recommandés : Tutoriel Python ]
Concept de thread :
Le thread est la plus petite unité de planification des opérations dans le système d'exploitation. Il est inclus dans le processus et constitue la véritable unité opérationnelle du processus. Un thread fait référence à une séquence unique de flux de contrôle dans un processus. Un processus peut avoir plusieurs threads et chaque thread peut effectuer différentes tâches en même temps. Un thread peut être vu comme une séquence d'instructions nécessaires à l'exécution par un CPU
Multi-threading
Deux modules sont fournis dans la bibliothèque standard de Python : _thread et threading , _thread est un module de bas niveau qui ne prend pas en charge les threads démons. Lorsque le thread principal se termine, tous les threads enfants seront fermés de force. Threading est un module avancé qui encapsule _thread pour prendre en charge les threads démons. Dans la plupart des cas, nous devons uniquement utiliser le module threading avancé.
La notion de processus :
Un processus désigne un processus d'exécution d'un programme sur un ensemble de données donné, qui est un système Une unité indépendante pour l'allocation des ressources et les appels d'exécution. Autrement dit, chaque candidature a son propre processus. Lorsqu'un processus démarre, il génère d'abord un thread. Ce thread est appelé le thread principal, puis le thread principal crée d'autres sous-threads
Processus multiples :
Processus multiples Le processus est le module multitraitement qui fournit une concurrence distante et locale. Dans le scénario d'utilisation d'une bibliothèque multitraitement, tous les processus enfants sont démarrés par un processus parent. Ce processus parent devient le processus principal, qui gère une série d'états d'objet. . Une fois ce processus terminé, le processus enfant est susceptible d'être dans un état instable, le processus parent doit donc faire le moins possible pour maintenir sa stabilité
. Threads et processus La différence
(1) Le thread doit être exécuté dans un certain processus. Un processus peut contenir plusieurs threads et il ne peut y avoir qu'un seul thread principal.
(2) Plusieurs threads partagent le même espace d'adressage, ouvrent des fichiers et d'autres ressources. Plusieurs processus partagent de la mémoire physique, des disques, des imprimantes et d'autres ressources.
(3) Les threads n'occupent presque aucune ressource, ont une faible surcharge du système, une vitesse de commutation rapide et plusieurs threads dans le même processus peuvent partager des données, mais elles ne sont pas partageables entre les processus
(4 ) La création d'un nouveau thread est très simple, mais la création d'un nouveau processus nécessite le clonage du processus parent
(5) Un thread peut contrôler et faire fonctionner d'autres threads dans le même processus mais un processus peut le faire ; n'exploiter que les processus enfants
Résumé : ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à tout le monde.
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!