Quand Go Scheduler crée de nouveaux M et P dans le modèle GMP
Dans le modèle GMP (Goroutine, Machine, Processor) de Go, le planificateur gère la création de M (Machine) et P (Processeur) en fonction de conditions spécifiques.
Création M
M est créé en réponse à des événements spécifiques, tels que :
P Création
P est créé au démarrage du programme en fonction de la variable d'environnement GOMAXPROCS, qui spécifie le nombre maximum de P disponibles. La valeur par défaut est le nombre de processeurs logiques sur le système.
Exemple d'analyse
Dans votre exemple de code, vous avez deux lots de goroutines exécuter des opérations de base de données. Chaque goroutine effectue une opération d'E/S bloquante.
Donc, dans votre cas, le planificateur créera plus de 8 M pour le deuxième lot de goroutines car les opérations bloquent. Le P sera limité à 1 en fonction de la valeur GOMAXPROCS, mais M sera créé dynamiquement selon les besoins.
Ressources supplémentaires
Pour une meilleure compréhension, reportez-vous à ce qui suit ressources :
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!