Heim  >  Artikel  >  Backend-Entwicklung  >  So starten Sie Coroutine in Golang

So starten Sie Coroutine in Golang

(*-*)浩
(*-*)浩Original
2019-12-30 15:51:063411Durchsuche

So starten Sie Coroutine in Golang

Im Wesentlichen ist Goroutine eine Coroutine. Der Unterschied besteht darin, dass Golang die Goroutine-Planung in vielen Aspekten wie Laufzeit und Systemaufrufen kapselt und verarbeitet, wenn sie auf langfristige Ausführung oder Systemaufrufe stößt. (Empfohlenes Lernen: go)

überträgt aktiv die CPU (P) der aktuellen Goroutine, sodass andere Goroutinen geplant und ausgeführt werden können. Das heißt, Golang unterstützt Coroutinen auf Sprachebene . .

Eines der Merkmale von Golang ist, dass es Coroutinen auf Sprachebene nativ unterstützt. Sie können eine Coroutine erstellen, indem Sie das Schlüsselwort go vor einer Funktion oder Methode hinzufügen.

Vergleich in anderen Aspekten

Speicherverbrauch

Jede Goroutine (Coroutine) belegt standardmäßig Speicher. Es gibt weit weniger Threads als Java und C.

Goroutine: 2 KB

Thread: 8 MB

Thread- und Goroutine-Umschaltplanungsaufwand

Thread/Goroutine-Umschaltaufwand, Goroutine ist weitaus kleiner als Threads

Threads: beinhalten Modusumschaltung (Umschaltung vom Benutzermodus in den Kernelmodus), 16 Register, PC, SP ... und andere Registeraktualisierungen usw.

Goroutine: nur drei Registerwertänderungen – PC/SP/DX.

Wir wissen, dass Coroutine eine leichtgewichtige Thread-Implementierung in der Go-Sprache ist, die von der Go-Laufzeit verwaltet wird.

Fügen Sie das Schlüsselwort go vor einem Funktionsaufruf hinzu, und der Aufruf wird gleichzeitig in einer neuen Goroutine ausgeführt. Wenn die aufgerufene Funktion zurückkehrt, wird auch diese Goroutine automatisch beendet. Es ist zu beachten, dass der Rückgabewert verworfen wird, wenn diese Funktion einen Rückgabewert hat.

Schauen Sie sich zunächst den folgenden Programmcode an:

func Add(x, y int) {
    z := x + y
    fmt.Println(z)
}
func main() {
    for i:=0; i<10; i++ {
        go Add(i, i)
    }
}

Wenn Sie den obigen Code ausführen, werden Sie feststellen, dass nichts auf dem Bildschirm gedruckt wird und das Programm beendet wird .

Das obige ist der detaillierte Inhalt vonSo starten Sie Coroutine in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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