Swoole fournit un mécanisme complet de gestion de processus. Lorsque le processus Worker se termine anormalement, comme une erreur fatale dans PHP, est accidentellement tué par d'autres programmes ou se termine normalement après avoir atteint le nombre max_request. de fois. (Apprentissage recommandé :
Le processus principal retrouvera le nouveau processus de travail. Le code peut être écrit dans le processus Worker comme Apache+php ou php-fpm ordinaire.
Mode thread swoole_server
Il s'agit du mode Worker multithread. Le thread Reactor gère l'interrogation des événements réseau et lit les données. La requête obtenue est transmise au thread Worker pour traitement. Swoole fournit des paramètres configurables pour réaliser le réglage des paramètres m/n. Dans ce mode, onReceive peut avoir des opérations de blocage modérées. Le mode multithread est plus léger que le mode processus, et les piles et les ressources peuvent être partagées entre les threads. Il y aura des problèmes de synchronisation lors de l'accès à la mémoire partagée, et le mécanisme de verrouillage fourni par Swoole doit être utilisé pour protéger les données. Actuellement, un total de cinq implémentations de verrouillage ont été fournies : Mutex, verrouillage en lecture-écriture, verrouillage de fichier, sémaphore et verrouillage rotatif.Avantages du multi-threading :
Les objets et les variables sont partagés et peuvent être exploités directement Les descripteurs de fichiers sont partagés et différents threads La même ressource peut être utilisé directementInconvénients du multi-threading :
Des verrous sont nécessaires lors de l'utilisation de variables non locales, ce qui rend la programmation difficilea Une mémoire une erreur se produit dans le thread et tout le processus se termineraEn raison d'une erreur de mémoire dans ZendVM de PHP en mode multi-thread, le mode multi-thread a été désactivé après la version v1.6.0
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!