我是靠谱客的博主 伶俐烧鹅,最近开发中收集的这篇文章主要介绍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 by example之channel-synchronization.go所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部