Maison > développement back-end > Golang > Changement de contexte Golang

Changement de contexte Golang

WBOY
Libérer: 2024-02-06 09:10:08
avant
879 Les gens l'ont consulté

Golang 上下文切换

Contenu de la question

J'ai une question très basique : Le contexte du planificateur du système d'exploitation peut-il basculer entre les threads au niveau utilisateur mappés au niveau du noyau ?

Supposons que goscheduler planifie une goroutine A sur le thread du noyau. Maintenant, la goroutine A effectue un appel sysblock, qui change de contexte en premier : le système d'exploitation ou le planificateur go ?


Bonne réponse


Le planificateur Go gère les goroutines, qui sont réutilisées sur les threads au niveau du système d'exploitation. Le planificateur Go peut effectuer efficacement des changements de contexte entre Goroutines, par exemple lorsqu'un Goroutine effectue un appel système bloquant, sans impliquer le planificateur du système d'exploitation. Cependant, il est important de noter qu'en raison de facteurs tels que le découpage temporel, le planificateur du système d'exploitation peut interrompre et effectuer indépendamment des changements de contexte. Par conséquent, le moment exact d’un changement de contexte et l’implication du planificateur du système d’exploitation peuvent ne pas être déterminés avec précision du point de vue du programme Go.

Lectures complémentaires :

proc.go dans le code source de Golang

Go Scheduler : implémentation d'un langage de concurrence léger

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!

source:stackoverflow.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal