代码
package main
import (
"fmt"
"sync"
)
func fibonacci(n int, wg *sync.WaitGroup) {
defer wg.Done()
x, y := 0, 1
for i := 0; i < n; i++ {
fmt.Println(x)
x, y = y, x+y
}
}
func main() {
var wg sync.WaitGroup
wg.Add(2)
go fibonacci(10, &wg)
go fibonacci(5, &wg)
wg.Wait()
}
使用go关键字启动了两个goroutine,分别计算斐波那契数列的前10个和前5个数字。通过使用goroutine,我们可以并行地执行这两个计算任务,而不需要显式地创建和管理线程。
补充
goroutine是Go语言中轻量级的并发执行单元,可以同时执行多个goroutine,而不需要显式地管理线程的生命周期。
goroutine由Go运行时(runtime)进行调度,可以在并发编程中实现并行执行。
THE END
暂无评论内容