看go程序:
package main
import "fmt"
import "time"
func main(){
go f()
a := fib(45) // very slow
fmt.Println("main ends", a)
}
func fib(x int) int {
if x < 2 {
return x
}
return fib(x - 1) + fib(x - 2)
}
func f(){
for {
time.Sleep(time.Second)
fmt.Println("slept")
}
}
结果:
ubuntu@VM-0-15-ubuntu:~/taoge/go$ ./test
slept
slept
slept
slept
slept
slept
slept
slept
slept
main ends 1134903170
ubuntu@VM-0-15-ubuntu:~/taoge/go$
自己感受。
Go协程与递归示例

本文通过一个Go语言程序示例展示了goroutine的运行机制及递归函数的使用。程序包含一个阻塞的goroutine输出循环和一个计算斐波那契数列的递归函数,展示了并发与计算密集型任务的结合。

被折叠的 条评论
为什么被折叠?



