Maison  >  Article  >  développement back-end  >  Comment obtenir une concurrence élevée dans Golang ?

Comment obtenir une concurrence élevée dans Golang ?

coldplay.xixi
coldplay.xixioriginal
2020-07-18 16:05:287261parcourir

Méthode de Golang pour atteindre une concurrence élevée : d'abord, M est associé à un thread du noyau et est connecté à un ou plusieurs G via la planification du planificateur P, puis, sur la base de la relation un-à-un entre ; M et P, via P Schedule N Gs ; réalisent enfin la relation plusieurs-à-plusieurs entre les threads du noyau et les Gs [M:N].

Comment obtenir une concurrence élevée dans Golang ?

Méthode de Golang pour atteindre une concurrence élevée :

le langage go utilise le mode MPG pour implémenter CSP

Recommandation de cours vidéo→ :"Des millions de solutions de simultanéité de données (théorique + pratique)"

Démarrer dans la concurrence traditionnelle De nombreux fils de discussion ne feront que augmenter la surcharge du processeur et de la mémoire. Un trop grand nombre de threads consommera une grande quantité de ressources matérielles informatiques, provoquant un goulot d'étranglement de concurrence.

  • M fait référence à Machine, et un M est directement associé à un thread du noyau.

  • P fait référence au « processeur », qui représente le contexte requis par M et est également le processeur qui gère la logique du code au niveau utilisateur.

  • G fait référence à Goroutine, qui est essentiellement un fil léger.

Comment obtenir une concurrence élevée dans Golang ?

Ma compréhension personnelle : M est associé à un thread du noyau, et grâce à la planification du planificateur P (contexte), un ou plusieurs peuvent être connectés G équivaut à diviser un thread du noyau en N threads utilisateur. M et P ont une relation un-à-un (mais les changements de relation dans la planification réelle sont planifiés via P (P et G ont une relation un-à-un). plusieurs relations). ), réalisant la relation plusieurs-à-plusieurs (M:N) entre le thread du noyau et G. De cette façon, un thread du noyau peut démarrer N Goroutines, et le nombre de threads utilisateur disponibles pour les machines avec le même la configuration matérielle augmentera géométriquement et la concurrence sera considérablement améliorée.

Recommandations d'apprentissage associées : Tutoriel de langue Go

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