复制代码
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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复