Fungsi bahasa Go bekerjasama dengan Goroutine
Coroutine (Goroutine) ialah mekanisme pelaksanaan selari yang ringan dalam bahasa Go. Ia boleh bekerjasama dengan fungsi untuk mencipta program serentak berprestasi tinggi dan boleh skala.
Fungsi
Fungsi bahasa Go ialah koleksi blok kod yang melaksanakan tugas tertentu dan mengembalikan hasil. Fungsi boleh menerima parameter dan menghantarnya mengikut nilai atau rujukan.
func add(a, b int) int { return a + b }
Goroutine
Goroutine ialah urutan pelaksanaan ringan yang diuruskan oleh masa jalan Go. Ia dicipta dengan kata kunci go
seperti berikut: go
关键字创建,如下所示:
go func() { // Goroutine 正在执行的任务 }
协作
函数和 Goroutine 可以协作以创建并发程序。函数可以启动 Goroutine 来执行任务,而 Goroutine 可以在函数执行完成后回调函数。
实战案例
考虑以下代码示例,它启动一个 Goroutine 来计算斐波那契数列:
func main() { // 启动一个 Goroutine 来计算第 n 个斐波那契数 n := 5 fib := make(chan int) go func() { fib <- fib(n) }() // 在 main Goroutine 中接收计算结果 result := <-fib fmt.Println("第", n, "个斐波那契数为:", result) } func fib(n int) int { if n <= 1 { return n } return fib(n-1) + fib(n-2) }
在这种情况下,main()
函数启动了一个 Goroutine 来计算第 5 个斐波那契数。fib()
函数在 Goroutine 中执行,并将结果发送回 main()
函数的通道 fib
。main()
rrreee
Kolaborasi
🎜🎜 Fungsi dan Goroutines boleh bekerjasama untuk mencipta program serentak. Fungsi boleh memulakan Goroutines untuk melaksanakan tugas, dan Goroutines boleh memanggil semula fungsi selepas pelaksanaan fungsi selesai. 🎜🎜🎜Kes praktikal🎜🎜🎜Pertimbangkan contoh kod berikut, yang memulakan Goroutine untuk mengira jujukan Fibonacci: 🎜rrreee🎜Dalam kes ini, fungsimain()
memulakan Goroutine untuk mengira Fibonacci jujukan: Kira nombor Fibonacci ke-5. Fungsi fib()
dilaksanakan dalam Goroutine dan menghantar hasilnya kembali ke saluran fungsi main()
fib
. Fungsi main()
menerima hasil daripada saluran dan mencetaknya. 🎜🎜Dengan pendekatan kolaboratif ini, kami boleh memanfaatkan keupayaan serentak Goroutines sambil mengekalkan susunan dan kebolehbacaan kod. 🎜Atas ialah kandungan terperinci Bagaimana golang berfungsi dan goroutine bekerjasama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!