Die Go-Sprache implementiert die gleichzeitige Programmierung über Goroutine, wodurch leichtgewichtige Threads gleichzeitig ausgeführt werden können. Goroutinen können mit dem Schlüsselwort go erstellt werden und kommunizieren über Pipes (Chan-Typ). Im konkreten Fall suchen wir parallel nach Zeichenfolgen und erstellen eine Pipeline, um die Ergebnisse jeder Goroutine-Suche zu empfangen, wodurch die Suchgeschwindigkeit verbessert wird.
Go-Funktionen für die gleichzeitige Programmierung verwenden
Die Go-Sprache bietet einen leichten Thread namens Goroutine, der für die gleichzeitige Programmierung verwendet werden kann. Goroutinen können gleichzeitig ausgeführt werden, wodurch die Leistung und Reaktionsfähigkeit Ihrer Anwendung verbessert wird.
Um eine Goroutine zu erstellen, verwenden Sie das Schlüsselwort go
, gefolgt von der auszuführenden Funktion: go
关键字,后面跟着要执行的函数:
go func() { fmt.Println("这是一个 Goroutine!") }
Goroutine 也可以接收和发送值。使用 chan
// 创建管道 ch := make(chan string) // Goroutine 发送值 go func() { ch <- "消息 1" ch <- "消息 2" } // 主程序接收值 for msg := range ch { fmt.Println(msg) }
chan
, um eine Pipeline zu erstellen, die die Kommunikation zwischen Goroutinen ermöglicht: // 文件列表 files := []string{"file1.txt", "file2.txt", "file3.txt"} // 创建管道 result := make(chan string) // Goroutine 并行查找字符串 for _, file := range files { go func(file string) { data, err := ioutil.ReadFile(file) if err != nil { result <- file + ": " + err.Error() return } result <- file + ": " + strconv.Itoa(strings.Count(string(data), "foo")) }(file) } // 主程序打印结果 for result := range result { fmt.Println(result) }
rrreee
Anhand dieses Beispiels können wir die Vorkommen der Zeichenfolge „foo“ in jeder Datei parallel finden und so eine schnellere Leistung als bei einer Single-Threaded-Suche erzielen. 🎜Das obige ist der detaillierte Inhalt vonWie werden Golang-Funktionen für die gleichzeitige Programmierung verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!