Shared Memory Goroutine kann über Kanäle implementiert werden: Erstellen Sie einen Kanal, um den Elementtyp anzugeben. Starten Sie eine Goroutine, um Daten in den Kanal zu schreiben. Verwenden Sie eine Bereichsschleife in der Haupt-Goroutine, um Daten aus dem Kanal zu lesen. Der Abschluss des Schreibvorgangs wird durch Schließen des Kanals angezeigt.
Wie erstelle ich eine gemeinsame Speicher-Goroutine in Go?
In Go wird Shared Memory über Kanäle implementiert. Ein Kanal ist im Wesentlichen eine First-In-First-Out-Warteschlange (FIFO) zum Senden und Empfangen von Werten zwischen Goroutinen.
Praktischer Fall
Das Erstellen eines Shared Memory Goroutine ist sehr einfach. Hier ist der Beispielcode:
package main import ( "fmt" "sync" ) func main() { // 创建一个 channel ch := make(chan int) // 创建 Goroutine 并启动,它将向 channel 写入数据 var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() for i := 0; i < 10; i++ { ch <- i } // 关闭 channel 表示完成 close(ch) }() // 从 channel 中读取数据 for v := range ch { fmt.Println(v) } wg.Wait() }
Erklärung
int
). int
)。go
语句启动一个新的 Goroutine,并将一个函数作为参数传递。close(ch)
go
-Anweisung startet eine neue Goroutine und übergibt eine Funktion als Parameter. Wenn die Goroutine abgeschlossen ist, können Sie den Kanal mit close(ch)
schließen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Goroutine mit gemeinsamem Speicher in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!