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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow