Heim  >  Artikel  >  Backend-Entwicklung  >  [Go Learning] Parallelitätskontrolle WaitGroup Counting Semaphore

[Go Learning] Parallelitätskontrolle WaitGroup Counting Semaphore

little bottle
little bottlenach vorne
2019-04-20 09:26:233388Durchsuche

Der Herausgeber dieses Artikels führt Sie zum Erlernen des WaitGroup-Zählsemaphors in der Parallelitätskontrolle in der Go-Sprache und fügt den Anwendungsfallcode hinzu, der einen bestimmten Referenzwert hat. Freunde, die interessiert sind, können vorbeikommen und es lernen!

WaitGroup ist ein Zählsemaphor, das zum Aufzeichnen und Aufrechterhalten der laufenden Goroutine verwendet werden kann. Wenn der Wert von WaitGroup größer als 0 ist, blockiert die Wait-Methode

Rufen Sie die Done-Methode auf, um die zu reduzieren Wert von WaitGroup. Und schließlich die Hauptfunktion freigeben


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结束")
}

Wenn Sie weitere Go-Sprach-Tutorials erfahren möchten, folgen Sie den Go-Video-Tutorials auf die chinesische PHP-Website! ​

Das obige ist der detaillierte Inhalt von[Go Learning] Parallelitätskontrolle WaitGroup Counting Semaphore. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen