概述
// 这个程序的例子说明,GO语言的并发是多么简洁,就是一个通用的结构,稍微改造后就可以用于实际中
// 对这个例子做了一些修改和说明
package main
import "fmt"
import "time"
func worker(done chan bool) {
fmt.Print("working...")
time.Sleep(2 * time.Second)
fmt.Println("done")
done <- true
}
func main() {
done := make(chan bool, 1)
fmt.Println("working A....")
go worker(done)
//模拟做其它的事
//下面这句话是自己增加的, 原代码中没有
fmt.Println("working B....")
//等待并发的结束,如果没有结束,就阻塞在这里
<-done
fmt.Println("all work finish!")
}
执行结果:
working A….
working B….
working…done
all work finish!
最后
以上就是伶俐烧鹅为你收集整理的go by example之channel-synchronization.go的全部内容,希望文章能够帮你解决go by example之channel-synchronization.go所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复