Processus multiples (Apprentissage recommandé : Tutoriel vidéo PHP)
Utiliser le multi-processus, une fois le processus enfant terminé , le noyau Sera responsable du recyclage des ressources
En utilisant plusieurs processus, la sortie anormale du processus enfant ne provoquera pas la sortie de l'ensemble du processus Thread et le processus parent aura la possibilité de reconstruire le processus.
Un processus principal résident est uniquement responsable de la répartition des tâches, et la logique est plus claire
La méthode multi-processus est plus stable et le partage de données peut également être réalisé en utilisant la communication inter-processus. (CIP).
Mémoire partagée, cette méthode est la même que la lecture et l'écriture de variables entre les threads. Elle doit être verrouillée, et il y aura des problèmes de synchronisation et de blocage.
File d'attente des messages, vous pouvez utiliser plusieurs sous-processus pour récupérer le mode file d'attente, les performances sont très bonnes
Multi-threading
Les threads sont dans le même processus, les variables de mémoire peuvent être partagées pour réaliser une communication entre les threads
Les threads sont plus légers que les processus. L'ouverture d'un grand nombre de processus consommera plus de ressources système que les threads
Il y en a. aussi quelques problèmes avec le multi-threading :
Il y a un problème de synchronisation lorsque les threads lisent et écrivent des variables, et des verrous sont requis
Il y a des problèmes de performances si la granularité du verrouillage est trop grande, ce qui peut entraîne l'exécution d'un seul thread et d'autres threads attendent le verrou
L'utilisation de plusieurs verrous en même temps a une logique complexe. Une fois qu'un verrou n'est pas libéré correctement, un blocage de thread peut se produire
Une erreur fatale dans un fil de discussion entraînera le crash de l'ensemble du processusCe 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!