Rumah > pembangunan bahagian belakang > Golang > Mengapa Menggunakan Penunjuk dan Pembolehubah dengan WaitGroup Go?

Mengapa Menggunakan Penunjuk dan Pembolehubah dengan WaitGroup Go?

Linda Hamilton
Lepaskan: 2024-12-01 00:43:10
asal
430 orang telah melayarinya

Why Use Pointers and Variables with Go's WaitGroup?

Rujukan WaitGroup: Menggunakan Penunjuk dan Pembolehubah

WaitGroup dalam Go menyediakan primitif penyegerakan untuk menyelaraskan goroutin. Ia mempunyai tiga fungsi utama: Tambah, Selesai dan Tunggu. Di sini, kami akan mengkaji penggunaannya dan sebab ia boleh dipanggil menggunakan kedua-dua penunjuk dan pembolehubah.

Kaedah WaitGroup

Seperti yang dinyatakan, semua fungsi WaitGroup dipanggil oleh penunjuk ke WaitGroup, dilambangkan dengan *jenis penerima WaitGroup. Ini membolehkan mereka mengubah suai keadaan dalaman WaitGroup, menjejaki penyiapan goroutine dan menunggu mereka selesai.

Memahami Penggunaan

Coretan kod yang dimaksudkan menunjukkan kedua-dua penuding dan penggunaan berubah-ubah untuk WaitGroup fungsi:

func main() {

    // Declared as a variable
    var wg sync.WaitGroup

    // Called with a pointer to the WaitGroup
    wg.Add(1)

    // Called with a variable (not a pointer)
    go worker(i, wg)
}
Salin selepas log masuk

Mengirim Penunjuk kepada Pekerja

Apabila menghantar WaitGroup kepada goroutine pekerja, adalah penting untuk menghantar alamatnya menggunakan &. Ini kerana fungsi Selesai pekerja beroperasi pada penuding WaitGroup dan menghantarnya terus sebagai pembolehubah akan mencipta salinan, mengakibatkan tingkah laku yang tidak dijangka.

Kesimpulan

Dalam ringkasan, semua kaedah WaitGroup direka untuk dipanggil dengan penerima penunjuk. Pembolehubah digunakan dalam coretan kod untuk memudahkan pengisytiharan dan panggilan fungsi. Walau bagaimanapun, apabila menghantar WaitGroup kepada goroutine, adalah penting untuk menghantar alamatnya (&) untuk memastikan semua kaedah beroperasi pada penuding asas yang sama.

Atas ialah kandungan terperinci Mengapa Menggunakan Penunjuk dan Pembolehubah dengan WaitGroup Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan