Fungsi Go mengawal pelaksanaan Goroutine dengan cara berikut: runtime.Goexit(): Menamatkan Goroutine semasa secara paksa. sync.WaitGroup: Tunggu sekumpulan Goroutines selesai. pilih{}: Membenarkan Goroutine menunggu salah satu daripada berbilang peristiwa dan melakukan tindakan yang sepadan berdasarkan peristiwa yang dicetuskan pertama. konteks.Konteks: Boleh digunakan untuk melepasi tarikh akhir atau membatalkan permintaan kepada Goroutines.
Fungsi How Go mengawal pelaksanaan Goroutine
Bahasa pengaturcaraan Go menyokong konkurensi dan menggunakan Goroutine (benang ringan) untuk mencapai konkurensi. Goroutines boleh dibuat melalui fungsi dan dimulakan pada bila-bila masa selepas penciptaan. Artikel ini akan memperkenalkan fungsi berbeza yang digunakan untuk mengawal pelaksanaan Goroutine dan memberikan beberapa contoh praktikal.
Fungsi yang mengawal pelaksanaan Goroutine
Kes praktikal
1. Tamatkan Goroutine
package main import ( "fmt" "runtime" "time" ) func main() { go func() { for { fmt.Println("Goroutine is running...") time.Sleep(1 * time.Second) } }() // 等待 10 秒后终止 Goroutine time.Sleep(10 * time.Second) runtime.Goexit() }
2
4 . Gunakan konteks Batalkan GoroutineAtas ialah kandungan terperinci Bagaimanakah fungsi golang mengawal pelaksanaan goroutine?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!package main
import (
"fmt"
"sync"
"time"
)
func main() {
var wg sync.WaitGroup
// 创建 5 个 Goroutine
for i := 0; i < 5; i++ {
wg.Add(1)
go func(i int) {
fmt.Printf("Goroutine %d is running...\n", i)
time.Sleep(1 * time.Second)
wg.Done()
}(i)
}
// 等待所有 Goroutine 完成
wg.Wait()
}