加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang chanel

发布时间:2020-12-16 19:08:24 所属栏目:大数据 来源:网络整理
导读: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 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读