Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menamatkan Pelbagai Rutin Pergi Dengan Anggun Menggunakan Konteks?
Cara Menyegerakkan Berbilang Rutin Pergi dengan Konteks
Untuk menyegerakkan berbilang goroutin, membenarkannya ditamatkan apabila salah satu daripadanya kembali, konteks menyediakan berkesan penyelesaian.
Penjelasan:
Kod sampel mencipta dua goroutine. Untuk menyegerakkannya, konteks.Konteks dimulakan dan diberikan kepada kedua-dua gorout. Setiap goroutine memasuki gelung {} terpilih, mendengar mesej daripada konteks.
Apabila ralat berlaku atau syarat tertentu dipenuhi:
Contoh Kod:
package main import ( "context" "sync" ) func main() { ctx, cancel := context.WithCancel(context.Background()) wg := sync.WaitGroup{} wg.Add(3) go func() { defer wg.Done() for { select { // msg from other goroutine finish case <-ctx.Done(): // end } } }() go func() { defer wg.Done() for { select { // msg from other goroutine finish case <-ctx.Done(): // end } } }() go func() { defer wg.Done() // your operation // call cancel when this goroutine ends cancel() }() wg.Wait() }
Kelebihan Menggunakan Konteks:
Atas ialah kandungan terperinci Bagaimana untuk Menamatkan Pelbagai Rutin Pergi Dengan Anggun Menggunakan Konteks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!