Maison  >  Article  >  développement back-end  >  [Go Learning] Sémaphore de comptage de groupes d'attente de contrôle d'accès concurrentiel

[Go Learning] Sémaphore de comptage de groupes d'attente de contrôle d'accès concurrentiel

little bottle
little bottleavant
2019-04-20 09:26:233463parcourir

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:=&#39;a&#39;;char<&#39;a&#39;+26;char++{
                                fmt.Printf("%c ",char)
                        }   
                }   
        }() 
        go func(){
                defer wg.Done()
                //循环显示三遍字母表
                for count:=0;count<3;count++{
                        //循环显示字母表
                        for char:=&#39;A&#39;;char<&#39;A&#39;+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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer