我是靠谱客的博主 伶俐烧鹅,这篇文章主要介绍go by example之channel-synchronization.go,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 这个程序的例子说明,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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部