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!