Go
Goroutinen
Suche…
Einführung
Eine Goroutine ist ein einfacher Thread, der von der Go-Laufzeitumgebung verwaltet wird.
gehe f (x, y, z)
startet eine neue Goroutine
f (x, y, z)
Die Bewertung von f, x, y und z erfolgt in der aktuellen Goroutine und die Ausführung von f in der neuen Goroutine.
Goroutinen laufen in demselben Adressraum, daher muss der Zugriff auf den gemeinsam genutzten Speicher synchronisiert werden. Das Sync-Paket bietet nützliche Grundelemente, obwohl Sie sie in Go nicht viel benötigen, da es andere Grundelemente gibt.
Referenz: https://tour.golang.org/concurrency/1
Goroutinen-Grundprogramm
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 5; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("world")
say("hello")
}
Eine Goroutine ist eine Funktion, die gleichzeitig mit anderen Funktionen ausgeführt werden kann. Um eine Goroutine zu erstellen, verwenden wir das Schlüsselwort go
gefolgt von einem Funktionsaufruf:
package main
import "fmt"
func f(n int) {
for i := 0; i < 10; i++ {
fmt.Println(n, ":", i)
}
}
func main() {
go f(0)
var input string
fmt.Scanln(&input)
}
Im Allgemeinen führt der Funktionsaufruf alle Anweisungen innerhalb des Funktionskörpers aus und kehrt zur nächsten Zeile zurück. Bei Goroutines kehren wir jedoch sofort zur nächsten Zeile zurück, da sie nicht auf die Ausführung der Funktion warten. So ist ein Aufruf einer Scanln
Funktion enthalten, ansonsten wurde das Programm ohne Drucken der Zahlen beendet.