Heim Backend-Entwicklung PHP-Tutorial [Go Learning] Parallelitätskontrolle WaitGroup Counting Semaphore

[Go Learning] Parallelitätskontrolle WaitGroup Counting Semaphore

Apr 20, 2019 am 09:26 AM
go waitgroup 并发控制

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结束")
}
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie sende ich Go WebSocket-Nachrichten? Wie sende ich Go WebSocket-Nachrichten? Jun 03, 2024 pm 04:53 PM

Wie sende ich Go WebSocket-Nachrichten?

Wie vermeidet man Speicherlecks bei der technischen Leistungsoptimierung von Golang? Wie vermeidet man Speicherlecks bei der technischen Leistungsoptimierung von Golang? Jun 04, 2024 pm 12:27 PM

Wie vermeidet man Speicherlecks bei der technischen Leistungsoptimierung von Golang?

Integration und Erweiterung der Parallelitätskontrolle von Golang-Funktionen und Bibliotheken von Drittanbietern Integration und Erweiterung der Parallelitätskontrolle von Golang-Funktionen und Bibliotheken von Drittanbietern Apr 25, 2024 am 09:27 AM

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? Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen? Jun 02, 2024 am 09:00 AM

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

Der Unterschied zwischen Golang und Go-Sprache Der Unterschied zwischen Golang und Go-Sprache May 31, 2024 pm 08:10 PM

Der Unterschied zwischen Golang und Go-Sprache

Best Practices für die Dokumentation des Golang-Frameworks Best Practices für die Dokumentation des Golang-Frameworks Jun 04, 2024 pm 05:00 PM

Best Practices für die Dokumentation des Golang-Frameworks

Eine Anleitung zum Unit-Testen gleichzeitiger Go-Funktionen Eine Anleitung zum Unit-Testen gleichzeitiger Go-Funktionen May 03, 2024 am 10:54 AM

Eine Anleitung zum Unit-Testen gleichzeitiger Go-Funktionen

Wie erstelle ich eine priorisierte Goroutine in Go? Wie erstelle ich eine priorisierte Goroutine in Go? Jun 04, 2024 pm 12:41 PM

Wie erstelle ich eine priorisierte Goroutine in Go?

See all articles