Go学习之channel&&同步
Posted martinue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go学习之channel&&同步相关的知识,希望对你有一定的参考价值。
package main
import (
"fmt"
"sync"
)
func fibonacci(n int, c chan int, waitGroup *sync.WaitGroup) {
defer waitGroup.Done()
x, y := 0, 1
for i := 0; i < n; i++ {
c <- x
x, y = y, x+y
}
close(c)
}
func get(n int, c chan int, waitGroup *sync.WaitGroup) {
defer waitGroup.Done()
for i := range c {
fmt.Printf("i:[%v] chan num:[%v]\\n", n, i)
}
}
func main() {
var wg sync.WaitGroup
wg.Add(5)
c := make(chan int, 10)
go fibonacci(cap(c), c, &wg)
go get(0, c, &wg)
go get(1, c, &wg)
go get(2, c, &wg)
go get(3, c, &wg)
wg.Wait()
}
以上是关于Go学习之channel&&同步的主要内容,如果未能解决你的问题,请参考以下文章