Maison > Article > développement back-end > [Go Learning] Sémaphore de comptage de groupes d'attente de contrôle d'accès concurrentiel
L'éditeur de cet article vous fera apprendre le sémaphore de comptage WaitGroup dans le contrôle de concurrence dans le langage go, et joindra le code du cas d'utilisation, qui a une certaine valeur de référence. Les amis intéressés peuvent venir l'apprendre !
WaitGroup est un sémaphore de comptage qui peut être utilisé pour enregistrer et maintenir la goroutine en cours d'exécution. Si la valeur de WaitGroup est supérieure à 0, la méthode Wait bloquera
Appelez la méthode Done pour réduire la valeur. valeur de WaitGroup. Et enfin libérer la fonction principale
package main import( "fmt" "runtime" "sync" ) func main(){ //只分配一个逻辑处理器给调度器使用 runtime.GOMAXPROCS(1) //wg用来使main goroutine等待子goroutine结束 var wg sync.WaitGroup //等待两个子goroutine结束 wg.Add(2) fmt.Println("开启goroutine") go func(){ defer wg.Done() //循环显示三遍字母表 for count:=0;count<3;count++{ //循环显示字母表 for char:='a';char<'a'+26;char++{ fmt.Printf("%c ",char) } } }() go func(){ defer wg.Done() //循环显示三遍字母表 for count:=0;count<3;count++{ //循环显示字母表 for char:='A';char<'A'+26;char++{ fmt.Printf("%c ",char) } } }() //main goroutine等待子goroutine结束 wg.Wait() fmt.Println("\ngoroutine结束") }
Si vous souhaitez en savoir plus sur les tutoriels du langage go, allez suivre les tutoriels vidéo go sur le site PHP chinois !
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!