Maison  >  Article  >  cadre php  >  Comment créer un travailleur en swoole

Comment créer un travailleur en swoole

尚
original
2020-01-13 13:30:522333parcourir

Comment créer un travailleur en swoole

swoole est un cadre de modèle multi-processus. Lorsqu'une application de processus swoole est démarrée, un total de 2+n+m processus seront créés, n est le nombre de processus de travail, et m est le processus TaskWorker Number, un processus maître et un processus gestionnaire, la relation est comme indiqué dans la figure ci-dessous

Comment créer un travailleur en swoole

Le processus maître est le processus principal, qui sera créer un processus Manager, un thread Reactor et d'autres processus/thread de travail.

Le processus Worker sert de processus de travail de Swoole, et tous les codes de logique métier s'exécutent sur ce processus. Lorsque le thread Reactor reçoit les données du client, il regroupe les données et les envoie à un processus Worker via un pipeline.

Les processus travailleur/tâche dans swoole sont tous bifurqués et gérés par le processus Manager.

Lorsque le processus enfant se termine, le processus gestionnaire est chargé de recycler le processus enfant pour éviter de devenir un processus zombie. Et créez un nouveau sous-processus

Lorsque le serveur est arrêté, le processus gestionnaire enverra des signaux à tous les sous-processus pour notifier aux sous-processus d'arrêter le service

Lorsque le le serveur est rechargé, le processus gestionnaire arrêtera/redémarrera les sous-processus un par un

fork() :

Un processus, comprenant le code, les données et les ressources allouées au processus. La fonction fork() crée un processus presque identique au processus d'origine via un appel système. Autrement dit, les deux processus peuvent faire exactement la même chose, mais si les paramètres initiaux ou les variables transmises sont différents, les deux processus. peut aussi faire différentes choses.
Après qu'un processus appelle la fonction fork(), le système alloue d'abord des ressources au nouveau processus, comme de l'espace pour stocker les données et le code. Copiez ensuite toutes les valeurs du processus d'origine dans le nouveau processus, à l'exception de quelques valeurs différentes des valeurs du processus d'origine. Cela équivaut à se cloner.

Apprentissage recommandé : tutoriel swoole

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