2017-07-16 1 views

Antwort

0

Das Schlüsselwort nach dem Sie suchen haben, ist goroutines

Hier ist ein Beispiel: https://gobyexample.com/goroutines

Wenn Sie das Tutorial folgen, Kanäle, gepufferte Kanäle und synchronisierte Kanäle geben Ihnen eine Möglichkeit, Daten zurückzugeben.

Beispiel 2: https://tour.golang.org/concurrency/1

Beispiel 3: http://www.golangbootcamp.com/book/concurrency

TL; DR: Hier ist Ihr Muster:

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