Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan kawalan konkurensi fungsi golang untuk pengkomputeran selari
Dalam Go, anda boleh menggunakan kawalan konkurensi goroutine dan fungsi untuk melaksanakan pengkomputeran selari. Langkah-langkah khusus adalah seperti berikut: Buat goroutine dan gunakan kata kunci go untuk mencipta unit pelaksanaan serentak yang ringan. Gunakan jenis sync.WaitGroup untuk mengurus gorouti dan menyelaraskan pelaksanaan selari. Pecahkan tugas kepada beberapa bahagian dan gunakan goroutine untuk melaksanakan bahagian secara selari.
Cara menggunakan kawalan serentak berfungsi Go untuk pengkomputeran selari
Pengkomputeran selari ialah teknologi yang membolehkan program melaksanakan kod pada berbilang pemproses atau teras secara serentak, dengan itu meningkatkan prestasi dan kecekapan. Dalam bahasa Go, pengkomputeran selari boleh dicapai melalui kawalan konkurensi goroutine dan fungsi.
Goroutine
Goroutine ialah unit pelaksanaan serentak ringan dalam Go. Mereka sangat serupa dengan benang, tetapi lebih ringan dan cekap. Goroutine boleh dibuat menggunakan kata kunci go
: go
关键字创建一个 goroutine:
go func() { // 并发执行的代码 }
函数并发控制
函数并发控制是一种使用 goroutine 并行执行多个函数的技术。这可以通过使用 sync.WaitGroup
类型来实现:
import ( "sync" ) var wg sync.WaitGroup
实战案例
考虑一个计算 100 个数字斐波那契数列的程序。我们可以使用函数并发控制来将此任务分成多个部分,并并行执行它们:
func fib(n int) int { if n < 2 { return n } return fib(n-1) + fib(n-2) } func main() { var results []int n := 100 wg.Add(n) for i := 0; i < n; i++ { go func(i int) { results[i] = fib(i) wg.Done() }(i) } wg.Wait() fmt.Println(results) }
在这个示例中,fib
函数计算斐波那契数列,main
函数创建 100 个 goroutine 来并行计算斐波那契数,并使用 WaitGroup
rrreee
sync.WaitGroup
: 🎜rrreee🎜🎜Contoh Praktikal🎜🎜🎜Pertimbangkan program yang mengira jujukan Fibonacci bagi 100 nombor. Kita boleh menggunakan kawalan konkurensi fungsi untuk membahagikan tugas ini kepada beberapa bahagian dan melaksanakannya secara selari: 🎜rrreee🎜Dalam contoh ini, fungsi fib
mengira jujukan Fibonacci, main The code> fungsi mencipta 100 goroutin untuk mengira nombor Fibonacci secara selari dan menggunakan <code>WaitGroup
untuk menunggu semua gorouti selesai sebelum mencetak keputusan. 🎜Atas ialah kandungan terperinci Cara menggunakan kawalan konkurensi fungsi golang untuk pengkomputeran selari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!