


[Go Learning] Parallelitätskontrolle WaitGroup Counting Semaphore
Apr 20, 2019 am 09:26 AMDer 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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie sende ich Go WebSocket-Nachrichten?

Wie vermeidet man Speicherlecks bei der technischen Leistungsoptimierung von Golang?

Integration und Erweiterung der Parallelitätskontrolle von Golang-Funktionen und Bibliotheken von Drittanbietern

Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen?

Der Unterschied zwischen Golang und Go-Sprache

Best Practices für die Dokumentation des Golang-Frameworks

Eine Anleitung zum Unit-Testen gleichzeitiger Go-Funktionen

Wie erstelle ich eine priorisierte Goroutine in Go?
