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

// 这个程序的例子说明,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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部