Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "sync"
- )
- var wg sync.WaitGroup
- func SumFunc(s []int, c chan int) {
- defer wg.Done()
- if len(s) <= 1 {
- c <- s[0]
- } else {
- wg.Add(2)
- go SumFunc(s[:len(s)/2], c)
- go SumFunc(s[len(s)/2:], c)
- }
- }
- func main() {
- s := []int{7, 2, 8, -9, 4, 0}
- c := make(chan int)
- wg.Add(1)
- go SumFunc(s, c)
- wg.Wait()
- close(c)
- var sum int
- for element := range c {
- sum += element
- }
- fmt.Println(sum)
- fmt.Scanln()
- }
Add Comment
Please, Sign In to add comment