Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana golang berfungsi dan goroutine bekerjasama

Bagaimana golang berfungsi dan goroutine bekerjasama

王林
王林asal
2024-04-26 08:18:01502semak imbas

Bagaimana golang berfungsi dan goroutine bekerjasama

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() 函数的通道 fibmain()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, fungsi main() 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn