Maison  >  Article  >  Quelle est la différence entre multi-processus et multi-thread ?

Quelle est la différence entre multi-processus et multi-thread ?

青灯夜游
青灯夜游original
2019-04-03 16:39:2058985parcourir

La principale différence entre multi-processus et multi-thread est : 1. Les threads sont un sous-ensemble de processus, et un processus peut être composé de plusieurs threads 2. Les données des multi-processus sont séparées et partagées ; est compliqué, nécessitant IPC, mais la synchronisation est simple ; 3. Les données de processus partagées par plusieurs threads, le partage est simple, mais la synchronisation est complexe.

Quelle est la différence entre multi-processus et multi-thread ?

Qu'est-ce que le multi-processus ?

Un processus est une activité d'exécution d'un programme sur un ordinateur, c'est-à-dire une application en cours d'exécution, généralement appelée processus. Lorsque vous exécutez un programme, vous démarrez un processus. Chaque processus possède son propre espace d'adressage indépendant (espace mémoire). Chaque fois qu'un utilisateur démarre un processus, le système d'exploitation alloue un espace mémoire indépendant au processus et permet à l'application de s'exécuter dans cet espace mémoire indépendant.

En même temps, si deux processus ou plus peuvent s'exécuter dans le même système informatique, il s'agit d'un multi-processus, également appelé multitâche. Les systèmes d'exploitation modernes sont presque tous des systèmes d'exploitation multitâches capables de gérer l'exécution de plusieurs processus en même temps.

Les avantages du multitâche sont évidents. Par exemple, vous pouvez écouter des mp3 tout en surfant sur Internet, et en même temps, vous pouvez même imprimer des documents téléchargés, et ces tâches n'interféreront pas les unes avec les autres. tous.

Qu'est-ce que le multithreading ?

Un thread est un sous-processus léger, la plus petite unité de traitement, c'est un chemin d'exécution distinct ; On peut dire que : un thread est un sous-ensemble (une partie) d'un processus, et un processus peut être constitué de plusieurs threads.

Les fils de discussion sont indépendants. Si une exception se produit dans un thread, elle n’affecte pas les autres threads. Il utilise une zone de mémoire partagée.

Le multi-threading est un modèle d'exécution qui permet à plusieurs threads d'exister dans le contexte d'un processus afin qu'ils s'exécutent indépendamment mais partagent leurs ressources de processus.

La différence entre multi-processus et multi-threading

维度 多进程 多线程 总结
数据共享、同步 数据是分开的,共享复杂,需要用IPC;同步简单 多线程共享进程数据,共享简单;同步复杂 各有优势
内存、CPU 占用内存多,切换复杂,CPU利用率低 占用内存少,切换简单,CPU利用率高 线程占优
创建销毁、切换 创建销毁、切换复杂,速度慢  创建销毁、切换简单,速度快  线程占优
编程调试 编程简单,调试简单 编程复杂,调试复杂 进程占优
可靠性 进程间不会相互影响  一个线程挂掉将导致整个进程挂掉 进程占优
分布式  适应于多核、多机分布 ;如果一台机器不够,扩展到多台机器比较简单 适应于多核分布 线程占优

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

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