Heim > Artikel > Backend-Entwicklung > [Go Learning] Parallelitätskontrolle WaitGroup Counting Semaphore
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:='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结束") }
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!