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 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短