Bagaimana cara menggunakan coroutine Go untuk melaksanakan pemprosesan selari? Buat coroutine untuk mengira jujukan Fibonacci secara selari. Coroutines memindahkan data melalui saluran untuk mencapai pengkomputeran selari. Coroutine utama menerima dan memproses hasil pengiraan selari.
Cara menggunakan Go coroutine untuk melaksanakan pemprosesan selari
Pengenalan kepada coroutine
Coroutine ialah concurrency primitif yang ringan dalam Go, yang membenarkan pelaksanaan dan fungsi resume yang dijalankan dalam Pautan (paut) memulakan urutan atau proses baharu. Ini membantu meningkatkan kecekapan konkurensi dan mengurangkan penggunaan memori.
Kes Praktikal: Pengiraan Selari bagi Jujukan Fibonacci
Untuk menunjukkan keupayaan pemprosesan selari coroutine, kami mencipta program Go untuk mengira Jujukan Fibonacci secara selari:
RreeeSelepas programRun
program, item ke-20 jujukan Fibonacci akan dikeluarkan dalam terminal:package main import ( "fmt" "time" ) func main() { ch := make(chan int) go fib(20, ch) // 启动一个协程计算斐波那契数 time.Sleep(100 * time.Millisecond) // 等待协程完成 result := <-ch // 从 channel 中接收计算结果 fmt.Println("斐波那契数列的第 20 项:", result) } func fib(n int, ch chan int) { if n <= 1 { ch <- 1 return } ch1 := make(chan int) ch2 := make(chan int) go fib(n-1, ch1) // 通过协程并行计算斐波那契数列 go fib(n-2, ch2) f1 := <-ch1 f2 := <-ch2 ch <- f1 + f2 // 并行计算的结果相加后发送到主协程 }
Nota
Atas ialah kandungan terperinci Bagaimanakah cara menggunakan coroutine Go untuk melaksanakan pemprosesan selari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!