C++,python,热爱算法和机器学习
全部博文(1214)
分类: 信息化
2014-02-16 23:20:44
周海汉 2013.9.17
许式伟的《go语言编程》,有一个简单的例子,描述go协程和通信通道chan。挺优美的。如下:
[andy@s1 test]$ cat sum.go package main import "fmt" func sum(values []int, myChan chan int) { sum := 0 for _, value := range values { sum += value } myChan <- sum //值传到通道 } func main() { myChan := make( chan int,2) values := []int {1,2,3,5,5,4} go sum(values,myChan) //协程1 go sum(values[:3],myChan) //协程2 sum1,sum2 := <-myChan, <-myChan fmt.Println("Result:",sum1,sum2,sum1+sum2) }
结果:
[andy@s1 test]$ go run sum.go
Result: 20 6 26