Go语言的管道Channel用法实例
本文实例讲述了Go语言的管道Channel用法。分享给大家供大家参考。具体分析如下:
channel是有类型的管道,可以用channel操作符<-对其发送或者接收值。
ch<-v//将v送入channelch。
v:=<-ch//从ch接收,并且赋值给v。
(“箭头”就是数据流的方向。)
和map与slice一样,channel使用前必须创建:
ch:=make(chanint)
默认情况下,在另一端准备好之前,发送和接收都会阻塞。这使得goroutine可以在没有明确的锁或竞态变量的情况下进行同步。
packagemain
import"fmt"
funcsum(a[]int,cchanint){
sum:=0
for_,v:=rangea{
sum+=v
}
c<-sum //sendsumtoc
}
funcmain(){
a:=[]int{7,2,8,-9,4,0}
c:=make(chanint)
gosum(a[:len(a)/2],c)
gosum(a[len(a)/2:],c)
x,y:=<-c,<-c //receivefromc
fmt.Println(x,y,x+y)
}
希望本文所述对大家的Go语言程序设计有所帮助。
热门推荐
10 喜得孙子祝福语简短唯美
11 婚礼祝福语简短朴实大众
12 员工周年祝福语大全简短
13 家长回复节日祝福语简短
14 简短生日祝福语老同学
15 夜雨祝福语简短10字
16 蛋糕祝福语简短闺蜜
17 部门过年祝福语简短独特
18 简短精炼的结婚祝福语