Maison  >  Article  >  cadre php  >  Quelle est la différence entre la coroutine swoole et la coroutine go ?

Quelle est la différence entre la coroutine swoole et la coroutine go ?

WBOY
WBOYoriginal
2022-02-10 11:08:465486parcourir

Différences : 1. La coroutine Go est basée sur le multi-threading et peut utiliser des processeurs multicœurs, tandis que la coroutine swoole est basée sur un seul thread et ne peut pas utiliser de processeurs multicœurs. 2. La coroutine Go n'a pas besoin de déclarer la coroutine ; environnement, tandis que les routines swoole coroutine doivent être utilisées dans le contexte des coroutines.

Quelle est la différence entre la coroutine swoole et la coroutine go ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, Swoole4&&GO version 1.11.2, ordinateur DELL G3

Quelle est la différence entre la coroutine swoole et la coroutine go

Le niveau de langue Go prend en charge la coroutine, pas besoin de le faire ? déclarer l'environnement coroutine. Swoole doit être utilisé dans le contexte d'une coroutine.

Go est basé sur le multithread et peut utiliser des processeurs multicœurs. Les coroutines de Swoole sont basées sur des threads uniques et ne peuvent pas utiliser de processeurs multicœurs.

Les coroutines sont une existence plus légère que les threads. comme avoir plusieurs threads, un thread peut avoir plusieurs coroutines. Les coroutines ont les caractéristiques suivantes

Exécution en mode utilisateur, qui est entièrement contrôlée par le programme et non gérée par le noyau du système d'exploitation

Elle convient au traitement des tâches gourmandes en IO, je le ferai. Je ne donne pas une introduction détaillée ici. C'est principalement différent des tâches gourmandes en CPU

Convertir les ressources de compétition dans le thread en opération coopérative

Méthode Channel (Channel) pour la communication entre les coroutines

Une petite quantité de surcharge de changement de contexte, principalement exécuté sur le thread, en revanche, le changement de contexte du processus est stocké dans la ressource de pile, tandis que la coroutine est asynchrone et non bloquante, ce qui équivaut à la tâche de file d'attente dans le thread en mode utilisateur. canal comme rappel, et il n'est pas nécessaire d'attendre deux fois une fois la tâche terminée. Récupération de ressources

Ensuite, parlons en détail de la différence entre la coroutine swoole et la coroutine Go

La coroutine Swoole

Le client de la coroutine Swoole doit être utilisé dans le contexte de la coroutine.

La coroutine de Swoole est basée sur un seul thread et ne peut pas profiter des processeurs multicœurs. Un seul est programmé à la fois.

Exemples d'utilisation de la coroutine Swoole et explications détaillées

La coroutine goroutine de Go

goroutine est un thread léger, et le langage Go prend en charge la coroutine native au niveau du langage.

Les coroutines Go ont très peu de surcharge par rapport aux threads.

La surcharge de pile de la coroutine Go n'est que de 2 Ko, qui peut être augmentée et réduite en fonction des besoins du programme

Le thread doit spécifier la taille de la pile, et la taille de la pile est fixe.

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