package main
import "fmt"
import "time"
var done1 chan bool
func main(){
done1 = make(chan bool) // 创建一个channel
go fDigui()
go func() {
fmt.Println("main begins")
a := fib(45) // very slow
done1 <- true
fmt.Println("main ends", a)
}()
go fDigui2()
<-done1
}
func fib(x int) int {
if x < 2 {
return x
}
return fib(x - 1) + fib(x - 2)
}
func fDigui(){
for {
time.Sleep(time.Second)
fmt.Println("slept111")
}
}
func fDigui2(){
for {
time.Sleep(time.Second)
fmt.Println("slept222")
}
}
例子改造于如下地址 csdn博客第一名的大佬
https://blog.csdn.net/stpeace/article/details/81837006
返回结果
main begins
slept222
slept111
slept111
slept222
slept222
slept111
slept111
slept222
slept222
slept111
slept111
slept222
slept222
slept111
slept222
slept111
slept222
slept111
slept222
slept111
slept111
slept222
slept222
slept111
slept111
slept222
slept111
slept222
main ends 1134903170
博客围绕 goroutine 展开,通过相关代码体验并行感觉。给出了代码运行的输出结果,包含多次 'slept111' 和 'slept222' 的交替输出,最后显示 'main ends' 及相关数字。
561

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



