Memori dikongsi Goroutine boleh dilaksanakan melalui saluran: Cipta saluran untuk menentukan jenis elemen. Mulakan Goroutine untuk menulis data ke saluran. Gunakan gelung julat dalam Goroutine utama untuk membaca data daripada saluran. Penyelesaian penulisan ditunjukkan dengan menutup saluran.
Bagaimana untuk mencipta memori bersama Goroutine dalam Go?
Dalam Go, memori bersama dilaksanakan melalui saluran. Saluran pada asasnya ialah baris gilir pertama masuk dahulu (FIFO) untuk menghantar dan menerima nilai antara Goroutines.
Kes praktikal
Mencipta memori bersama Goroutine adalah sangat mudah. Berikut ialah contoh kod:
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() }
Penjelasan
int
). int
)。go
语句启动一个新的 Goroutine,并将一个函数作为参数传递。close(ch)
go
memulakan Goroutine baharu dan melepasi fungsi sebagai parameter. Apabila Goroutine selesai, anda boleh menggunakan close(ch)
untuk menutup saluran.
Atas ialah kandungan terperinci Bagaimana untuk mencipta memori bersama Goroutine dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!