2017-07-16 102 views

回答

0

你要搜索的關鍵字任何最佳實踐goroutines

下面是一個例子:https://gobyexample.com/goroutines

如果按照教程,渠道,帶緩衝頻道和同步頻道將爲您提供一些返回數據的方式。

實施例2:https://tour.golang.org/concurrency/1

實施例3:http://www.golangbootcamp.com/book/concurrency

TL; DR:這裏是您的圖案:

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) 
}