用Channel和两个协程实现数组相加

本文阅读 1 分钟
首页 golang 正文

题目序号:985

题目来源:好未来

频次:1

答案1:(peace)

代码如下:

package main
import "fmt"

//用channel和两个goroutine实现数组相加
func add(a, b []int) []int {
    ch := make(chan int)
    c := make([]int,len(a))
    go func() {
        for _,v := range a{
            ch <- v
        }
    }()
    go func() {
        for i,t := range b{
            temp := <- ch
            c[i] = temp+t
        }
    }()
    return c
}

func main()  {
    a := []int{2,4,6,8}
    b := []int{1,3,5,7}
    ans := add(a,b)
    fmt.Println(ans)
}
本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论