Goroutines vs Threads : clarifier la relation entre le noyau et l'état de l'utilisateur
Dans le domaine de la programmation, comprendre les concepts de goroutines, de threads utilisateur , et les threads du noyau sont cruciaux. Pour faire la lumière sur ces concepts, explorons les questions suivantes :
Le "efficace" Go" introduit des goroutines, ce qui entraîne une confusion sur la signification des threads du système d'exploitation. Dans le contexte de cet article, les threads du système d'exploitation font référence aux threads du noyau.
Selon l'article "go-scheduler", le nombre de processeurs (P) reflète les contextes de planification disponibles pour le système d'exploitation. Ces contextes sont liés aux cœurs de processeur pour garantir une utilisation efficace des ressources. Cependant, d'autres programmes du système peuvent toujours accéder au temps CPU car le planificateur du noyau gère la distribution des ressources.
Le nombre de threads du noyau générés par le système d'exploitation varie en fonction de la demande. La commande "ps -eL" peut être utilisée pour vérifier le nombre réel de threads du noyau exécutés sur un système spécifique.
Explication supplémentaire
Les goroutines, ou threads utilisateur, sont des entités légères et simultanées qui résident dans un programme Go. Ils sont mappés aux threads du système d'exploitation (threads du noyau) via un mécanisme appelé « P », garantissant qu'ils peuvent s'exécuter simultanément sur plusieurs processeurs. Le nombre de « P » est généralement défini sur le nombre de processeurs disponibles.
Il est important de noter que le nombre de processeurs disponibles ne limite pas le nombre de tâches pouvant être exécutées simultanément. La concurrence implique souvent une attente importante pour les opérations d’entrée/sortie (IO). Même les tâches très gourmandes en calcul seront interrompues par le planificateur du noyau pour permettre à d'autres processus de s'exécuter.
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!