源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Go语言的管道Channel用法实例

  • 时间:2020-08-20 02:27 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Go语言的管道Channel用法实例
本文实例讲述了Go语言的管道Channel用法。分享给大家供大家参考。具体分析如下: channel 是有类型的管道,可以用 channel 操作符 <- 对其发送或者接收值。 ch <- v // 将 v 送入 channel ch。 v := <-ch // 从 ch 接收,并且赋值给 v。 (“箭头”就是数据流的方向。) 和 map 与 slice 一样,channel 使用前必须创建: ch := make(chan int) 默认情况下,在另一端准备好之前,发送和接收都会阻塞。这使得 goroutine 可以在没有明确的锁或竞态变量的情况下进行同步。
[u]复制代码[/u] 代码如下:
package main import "fmt" func sum(a []int, c chan int) {     sum := 0     for _, v := range a {         sum += v     }     c <- sum  // send sum to c } func main() {     a := []int{7, 2, 8, -9, 4, 0}         c := make(chan int)     go sum(a[:len(a)/2], c)     go sum(a[len(a)/2:], c)         x, y := <-c, <-c  // receive from c     fmt.Println(x, y, x + y) }
希望本文所述对大家的Go语言程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部