Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist Golang asynchron?

Was ist Golang asynchron?

青灯夜游
青灯夜游Original
2022-12-28 10:54:454412Durchsuche

Asynchron bedeutet in Golang, dass die Ausführung eines asynchronen Prozesses nicht mehr der Reihenfolge des Codes folgt. Die Ausführung eines asynchronen Prozesses hat keine sequentielle Beziehung zur ursprünglichen Reihenfolge ausgegeben, erhält der Anrufer das Ergebnis nicht. Zuvor können Sie mit der Ausführung nachfolgender Vorgänge fortfahren. Golang asynchron wird hauptsächlich durch Coroutine (Goroutine) implementiert. Wenn eine Funktion mit dem Schlüsselwort „go“ aufgerufen wird, erstellt go eine Coroutine-ähnliche Sache, um die Funktion auszuführen, sodass eine einfache Parallelität erreicht werden kann.

Was ist Golang asynchron?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

Was ist asynchron?

Asynchron (asynchron) ist ein entgegengesetztes Konzept zu synchron (synchron, synchron). Bei der von uns untersuchten traditionellen Single-Thread-Programmierung erfolgt die Ausführung des Programms synchron (synchron bedeutet nicht, dass alle Schritte gleichzeitig ausgeführt werden, sondern bedeutet, dass die Schritte nacheinander in einer Kontrollflusssequenz ausgeführt werden). Das Konzept der Asynchronität ist ein Konzept, das keine Synchronisation garantiert. Das heißt, die Ausführung eines asynchronen Prozesses steht nicht mehr in einer sequentiellen Beziehung zur ursprünglichen Sequenz.

Ein einfaches Verständnis ist: Die Synchronisierung erfolgt in der Reihenfolge Ihres Codes, die asynchrone Ausführung erfolgt nicht in der Reihenfolge des Codes und die asynchrone Ausführung ist effizienter.

Eine andere Erklärung lautet:

Geben Sie zwei Container an, einen heißt synchron und der andere heißt asynchron. Führen Sie den Code zuerst synchron aus und warten Sie, bis er asynchron kompiliert ist Warten Sie auf die synchrone Ausführung und führen Sie den darin enthaltenen Code asynchron aus.

So implementieren Sie Asynchronität in Golang

Gos Asynchronität wird hauptsächlich durch Coroutine (Goroutine) implementiert. Im Vergleich zu Threads belegen Coroutinen weniger Speicher und sind leichter, was auch der Leistungsvorteil von Go ist.

Go-Sprache ist eine nebenläufige Programmiersprache. In Go gibt es ein sehr wichtiges Schlüsselwort, mit dem wir einige asynchrone und gleichzeitige Aufgaben ausführen können.
goroutine wird zum Aufrufen von Funktionen verwendet. Wenn eine Funktion mit dem Schlüsselwort go aufgerufen wird, erstellt go eine Coroutine-ähnliche Sache, um die Funktion auszuführen, sodass Parallelität leicht erreicht werden kann.

Beispiel:

package main
import (
	"fmt"
)
func main() {
	go work1()
	go work2()
	fmt.Println("[全部完成]")
}
func work1(){
	fmt.Println("work1")
}
func work2(){
	fmt.Println("work2")
}

Ergebnis:

[全部完成]

Natürlich ist dies ein unangemessenes Beispiel, aber es beweist auch die asynchrone Ausführung. Nach dem Aufruf von work1 und work2 wird die Ausführung fortgesetzt, ohne auf die Ausgabeergebnisse zu warten.
Wenn Sie warten möchten, bis die asynchrone Ausführung abgeschlossen ist, bevor Sie die endgültige Ausgabe ausführen, müssen Sie der WaitGroup beitreten

]

Das obige ist der detaillierte Inhalt vonWas ist Golang asynchron?. 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