Maison  >  Article  >  cadre php  >  Swoole Worker propose-t-il des sondages sur les événements ?

Swoole Worker propose-t-il des sondages sur les événements ?

(*-*)浩
(*-*)浩original
2019-12-16 09:28:082180parcourir

Swoole Worker propose-t-il des sondages sur les événements ?

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é : Tutoriel vidéo SWOOLE )

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é directement

Inconvénients du multi-threading :

Des verrous sont nécessaires lors de l'utilisation de variables non locales, ce qui rend la programmation difficile

a Une mémoire une erreur se produit dans le thread et tout le processus se terminera

En 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!

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