Maison développement back-end Golang Golang est-il un mode multithread ?

Golang est-il un mode multithread ?

Jul 22, 2020 am 09:31 AM
golang 多线程

Golang est un modèle multithread. Le modèle de thread de golang est le modèle MPG. De manière générale, les processus Go et les threads du noyau correspondent à plusieurs à plusieurs, donc tout d'abord, ils doivent être multi-. fileté.

Golang est-il un mode multithread ?

golang est un mode multithread.

Puisque p et m dans gmp lient p à m thread du noyau, alors le nombre maximum de p est déterminé par GOPROCESS, et le nombre de threads du noyau M sera limité à 10K par go , mais en raison pour des raisons de noyau, il ne peut pas faire grand-chose, donc cette restriction peut être traitée comme si elle n'existait pas. Prenez une photo pour clarifier

Golang est-il un mode multithread ?

Golang a un modèle dit M ratio N. N go routines peuvent être créées sous M threads. . Il s'agit essentiellement d'un modèle multithread, mais la planification des coroutines est déterminée par Go runtime, soulignant que les développeurs doivent utiliser des canaux pour la synchronisation entre les coroutines.

Quant aux threads, le niveau de langage n'étant pas ouvert, vous pouvez le comprendre comme un modèle multi-coroutine. Plusieurs go routine peuvent être créés sur un seul thread. De manière générale, le même nombre de threads que le. Le nombre de cœurs de processeur sera créé, bien entendu, le nombre est en fait déterminé par le runtime.

Concernant la planification de goroutine, celle-ci est en fait en constante évolution. Je ne parlerai que du modèle GMP qui s'exécute sur M threads. Chaque fois qu'une tâche est exécutée, le P (processeur) actuel est vérifié. . La file d'attente exécutable sur P contient des goroutines exécutables. Une fois qu'il n'y a plus de goroutine exécutable sur le P actuel, elle volera la goroutine dans la file d'attente exécutable d'un autre P.

Théoriquement, la création de goroutines n'est limitée que par la mémoire. De manière générale, le maximum est de 2 Ko. Pour un thread avec 2 Mo d'espace, théoriquement il peut facilement atteindre 1 000. Bien sûr, ce n'est qu'une situation idéale, donc le système d'exploitation Le nombre de threads n'augmentera pas à mesure que le nombre de goroutines créées augmente. La planification des threads est relativement gourmande en performances pour Go. Les changements fréquents de planification n'existeront qu'entre les goroutines, et les threads ne conserveront que le même nombre de threads actifs que le nombre de processeurs.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment lire et écrire des fichiers en toute sécurité avec Golang ? Comment lire et écrire des fichiers en toute sécurité avec Golang ? Jun 06, 2024 pm 05:14 PM

Comment lire et écrire des fichiers en toute sécurité avec Golang ?

Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Jun 06, 2024 am 11:21 AM

Comment configurer le pool de connexions pour la connexion à la base de données Golang ?

Similitudes et différences entre Golang et C++ Similitudes et différences entre Golang et C++ Jun 05, 2024 pm 06:12 PM

Similitudes et différences entre Golang et C++

Quelle est la courbe d'apprentissage de l'architecture du framework Golang ? Quelle est la courbe d'apprentissage de l'architecture du framework Golang ? Jun 05, 2024 pm 06:59 PM

Quelle est la courbe d'apprentissage de l'architecture du framework Golang ?

Comparaison des avantages et des inconvénients du framework Golang Comparaison des avantages et des inconvénients du framework Golang Jun 05, 2024 pm 09:32 PM

Comparaison des avantages et des inconvénients du framework Golang

Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ? Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ? Jun 05, 2024 pm 10:39 PM

Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ?

instructions d'utilisation du document cadre Golang instructions d'utilisation du document cadre Golang Jun 05, 2024 pm 06:04 PM

instructions d'utilisation du document cadre Golang

Quels sont les problèmes courants de gestion des dépendances dans le framework Golang ? Quels sont les problèmes courants de gestion des dépendances dans le framework Golang ? Jun 05, 2024 pm 07:27 PM

Quels sont les problèmes courants de gestion des dépendances dans le framework Golang ?

See all articles