golang chanel
发布时间:2020-12-16 18:05:26 所属栏目:大数据 来源:网络整理
导读:golang 中的chanel用于多个goroutines之间的通信,相当于linux中的阻塞的管道操作,可以配置为具有只读只写的属性: 只读:-ch 只写:ch- 创建chan时,可以指定管道的单位和缓冲区的大
golang 中的chanel用于多个goroutines之间的通信,相当于linux中的阻塞的管道操作,可以配置为具有只读只写的属性: 只读:<-ch 只写:ch<- 创建chan时,可以指定管道的单位和缓冲区的大小。 具体参见下面代码: package main 2 3 import "fmt" 4 //创建只读的管道 5 func sum(arrays []int,ch chan<- int) { 6 sum := 0 7 for _,value := range arrays { 8 sum += value 9 } 10 ch <- sum 11 } 12 func main() { 13 //20为管道的数量 14 arrayChan := make(chan int,20) 15 arrayInt := []int{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15} 16 for t := 0; t < 10; t++ { 17 length := len(arrayInt) 18 go sum(arrayInt[length-t:],arrayChan) 19 } 20 arrayResult := [10]int{0} 21 for i := 0; i < 10; i++ { 22 //从管道中读取10次 23 arrayResult[i] = <-arrayChan 24 } 25 fmt.Println(arrayResult) 26 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |