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