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) }
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!