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.
L'environnement d'exploitation de ce tutoriel : système Windows 10, Swoole4&&GO version 1.11.2, ordinateur DELL G3
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!