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语言程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下