go源码 src->test下面goroutines.go代码怎么理解? 非常感谢

988 发布于 2017/03/01 11:56
阅读 136
收藏 0
Go

package main

import (
    "os"
    "strconv"
)

func f(left, right chan int) {
    left <- <-right
}

func main() {
    var n = 10000
    if len(os.Args) > 1 {
        var err error
        n, err = strconv.Atoi(os.Args[1])
        if err != nil {
            print("bad arg\n")
            os.Exit(1)
        }
    }
    leftmost := make(chan int)
    right := leftmost
    left := leftmost
    for i := 0; i < n; i++ {
        right = make(chan int)
        go f(left, right)
        left = right
    }
    go func(c chan int) { c <- 1 }(right)
    <-leftmost
}

 

代码怎么理解?谢谢

加载中
0
庄津津
庄津津

这个是1从n个通道中传递的意思。你这是要测耗时还是?

返回顶部
顶部