Threads in swoole :
1. MainReactor (thread principal)
Le thread principal sera chargé de surveiller le socket du serveur. Si une nouvelle connexion est acceptée, le thread principal évaluera le nombre de connexions pour chaque thread Reactor. Attribuez cette connexion au thread du réacteur avec le plus petit nombre de connexions pour effectuer l’équilibrage de charge.
2. Groupe de threads Reactor
Le thread Reactor est responsable du maintien de la connexion TCP de la machine client, du traitement des E/S du réseau et de l'envoi et de la réception des données de manière complètement mode asynchrone et non bloquant.
Après avoir accepté une nouvelle connexion, le thread principal de swoole attribuera la connexion à un thread Reactor fixe, lira les données lorsque le socket est lisible, effectuera une analyse de protocole et transmettra la requête au processus Worker. Envoie des données au client TCP lorsque le socket est accessible en écriture.
3. Fil de détection des paquets de battements de cœur (HeartbeatCheck)
Une fois que Swoole a configuré la détection des battements de cœur, le fil de détection des paquets de battements de cœur vérifiera toutes les connexions précédemment en ligne dans un délai fixe
Envoyer des paquets de détection
4. Fil de réception des paquets UDP (UdpRecv)
Recevoir et traiter les paquets UDP client
swoole Pour obtenir le meilleur performances, plusieurs processus de travail doivent être créés pour aider à traiter les tâches, mais le processus de travail doit être fork. Cependant, l'opération fork n'est pas sûre s'il n'y a pas de gestion, de nombreux processus zombies apparaîtront, ce qui affectera en même temps les performances du serveur. À ce moment-là, le processus de travail est accidentellement interrompu ou se termine anormalement pour des raisons liées au programme. Afin de garantir la stabilité du service, le processus de travail doit être recréé.
Apprentissage recommandé : tutoriel vidéo 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!