Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mencipta memori bersama Goroutine dalam Go?

Bagaimana untuk mencipta memori bersama Goroutine dalam Go?

WBOY
WBOYasal
2024-06-02 11:32:571004semak imbas

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.

如何在 Go 中创建一个共享内存的 Goroutine?

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

  • Apabila anda membuat saluran, anda perlu menentukan jenis elemennya (dalam kes ini, int). int)。
  • go 语句启动一个新的 Goroutine,并将一个函数作为参数传递。
  • 在 Goroutine 中,我们使用一个 for 循环向 channel 写入数据。
  • 当 Goroutine 完成时,可以使用 close(ch)
  • Pernyataan go memulakan Goroutine baharu dan melepasi fungsi sebagai parameter.
  • Dalam Goroutine, kami menggunakan gelung for untuk menulis data ke saluran.

Apabila Goroutine selesai, anda boleh menggunakan close(ch) untuk menutup saluran.

🎜Dalam Goroutine utama, kami menggunakan gelung julat untuk membaca data daripada saluran. Gelung julat tidak akan keluar sehingga saluran ditutup. 🎜🎜🎜Dengan menggunakan saluran untuk memori dikongsi, kami boleh menghantar data antara Goroutine dengan selamat. 🎜

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn